Просмотр полной версии : Проблема с bash-скриптом
Elyor Xudayberdiev
14.11.2007, 21:40
короче говоря здесь про редайректор squid'a
вот такой редайректор:
#!/bin/bash
while read a
do
s=`echo $a | gawk '{printf $2}'`
echo $a
echo $s >> asdd
echo $a >> asdf
done
вводимые данные следующего типа (т. е. даются squid'ом):
http://mail.ru/ 172.16.101.201/- - GET -
http://images.cards.mail.ru/2006/cardsinf_bg4.gif 172.16.101.201/- - GET -
http://r.mail.ru/b2785064.gif 172.16.101.201/- - GET -
но, почему то в asdd не запиывается ip-адрес.
когда вручную запускаешь скрипт, всё правильно работает, а через сквиду нет :(. не подскажете, каким ещё способом можно выташить отсюда айпишник?
заранее всем спасибо
p.s. прошу прощения за краткость, но если я недостаточно описал ситуацию, напишите, попробую объясниться подлиннее :)
shumbola
14.11.2007, 22:09
короче говоря здесь про редайректор squid'a
вот такой редайректор:
#!/bin/bash
while read a
do
s=`echo $a | gawk '{printf $2}'`
echo $a
echo $s >> asdd
echo $a >> asdf
done
вводимые данные следующего типа (т. е. даются squid'ом):
http://mail.ru/ 172.16.101.201/- - GET -
http://images.cards.mail.ru/2006/cardsinf_bg4.gif 172.16.101.201/- - GET -
http://r.mail.ru/b2785064.gif 172.16.101.201/- - GET -
но, почему то в asdd не запиывается ip-адрес.
когда вручную запускаешь скрипт, всё правильно работает, а через сквиду нет :(. не подскажете, каким ещё способом можно выташить отсюда айпишник?
заранее всем спасибо
p.s. прошу прощения за краткость, но если я недостаточно описал ситуацию, напишите, попробую объясниться подлиннее :)
А gawk находиться в пути, когда запускаешь под сквидом?
Elyor Xudayberdiev
14.11.2007, 22:21
кстати, забыл сказать: заходил под именем сквида и запускал этот скрипт. работает, как под рутом. права везде понаставлены, как нужно
Elyor Xudayberdiev
15.11.2007, 16:58
решил проблему, заменив gawk на cut
cut -d" " -f2.
тему можно закрыть.
спасибо всем за участие :)
shumbola
15.11.2007, 20:43
решил проблему, заменив gawk на cut
cut -d" " -f2.
тему можно закрыть.
спасибо всем за участие :)
Зря вы хотите закрыть тему не разобравшись в проблеме. [g]awk очень мощный инструмент, который вам пригодиться в дальнейшем.
Но похвально то, что нашли другой способ. :icon_wink:
P.S. unix rulez!
Марат Фаттахов
15.11.2007, 23:48
Удивительно, что-то похожее с gawk у меня было, я сразу же решил с помощью cut -d" " и не парился, так и не разобрался в чём прикол.
по ману - gawk юзает по дефолту в качестве разделителя - пробел (OFS - The output field separator, a space by default.; printf fmt, expr-list Format and print.; print expr-list Prints expressions. Each expression is separated by the value of the OFS variable.), при использовании stdin и перенаправлении вывода - вроде всё чётко, а вот в каком то случае и вылазил глюк - вопрос.
плиз просьба - кто знает ответ - отписать.
shumbola
16.11.2007, 01:00
Я давно squid не запускаю, но ради интереса попробовал. ;)
OS - ubuntu 7.04
squid - 2.6 stable
в squid.conf добавил следующую строчку:
url_rewrite_program /tmp/test.sh
/tmp/test.sh - скрипт от Elyor (только asdf, asdd пишется в /tmp/, вместо gawk использую ubuntu stock awk - mawk от Mike Brennan)
cat /tmp/asdd
127.0.0.1/localhost
cat /tmp/asdf
http://www.uforum.uz/ 127.0.0.1/localhost - GET -
Так что, все ОК. Незнаю, что у вас там не получался/получается.
vBulletin® v3.8.5, Copyright ©2000-2025, Jelsoft Enterprises Ltd. Перевод: zCarot