Я хочу отслеживать URL-адрес, который я посещаю, поэтому я использую командную строку, например:
tcpdump -ien1 -v -X 'tcp port 80' | sed -nl 's/^. 0x [0-9a-е] {4}:. {43}(.)$/\1/p '| perl break.pl | perl -pe' s/(GET | POST).(. ?).HTTP/1 ....Хост:.([A-zA-Z._0-9-])../"\nBEGURL" .localtime(). ": $ 1 http://$ 3 $ 2\n"/ge '| grep "^ BEGURL"
Работает нормально, по одному URL на строку. Но если я сделаю
tcpdump -ien1 -v -X 'tcp port 80' | sed -nl 's/^. 0x [0-9a-е] {4}:. {43}(.)$/\1/p '| perl break.pl | perl -pe' s/(GET | POST).(. ?).HTTP/1 ....Хост:.([A-zA-Z._0-9-])../"\nBEGURL" .localtime(). ": $ 1 http://$ 3 $ 2\n"/ge '| grep "^ BEGURL" >> /tmp /out
(обратите внимание на конец >> /tmp /out) Тогда файл пуст! Ты знаешь почему? Это абсолютно нелогично для меня.
Я также попытался перенаправить stdout и stderr в /tmp /out, он все еще пуст. Файл имеет доступ для записи. Я понятия не имею, что это может быть. Есть ли что-нибудь еще, кроме stdout и stderr??
за любую помощь.