URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 6899
[ Назад ]

Исходное сообщение
"обработка логов"

Отправлено nel , 31-Окт-07 14:59 
Доброго времени суток.
Задача. Есть лог файл, который постоянно пополняется. При появлении в строке слова SEND необходимо выдернуть эту строку и выполнить над ней скрипт.
Конструкция:
tail -f /home/nelubin/071031.log | grep SEND
выводит на экран нужные строки
Хотелось такой строкой
tail -f /home/nelubin/071031.log | grep SEND >> /home/nelubin/123
записать вывод в файл, но этого не происходит. Что здесь не так?

Содержание

Сообщения в этом обсуждении
"обработка логов"
Отправлено angra , 31-Окт-07 15:31 
Скорее всего дело в буфферизации для неинтерактивного(stdoutput перенаправлен) запуска. А зачем вам писать в файл? Попробуйте просто читать вывод tail -f /home/nelubin/071031.log | grep SEND в while. Можно еще попробовать set -v, может поможет

"обработка логов"
Отправлено nel , 31-Окт-07 16:30 
>Попробуйте просто читать вывод tail -f /home/nelubin/071031.log |
>grep SEND в while.

СПАСИБО, то, что надо.

>Скорее всего дело в буфферизации для неинтерактивного(stdoutput перенаправлен) запуска.

Если не сложно, то где можно узнать подробнее?

>А зачем вам писать в файл?

Это уже не актуально.


"обработка логов"
Отправлено angra , 01-Ноя-07 06:50 
>Если не сложно, то где можно узнать подробнее?

хз, есди своими словами то когда вывод идет на экран, то он обычно не буфферизуется. То есть пришла строка - вылюнули на экран. Когда же вывод идет в файл, то для сокращения количества обращений к файлу сначала накапливается определённый объем и только потом сбрасывается в файл. В результате у вас с какого-то момента данные в файле стали бы появлятся, но кусками фиксированного(в байтах) размера, что означало бы порезанные строки.