LINUX.ORG.RU
ФорумAdmin

bash задержки при перенаправлении логов


0

0

Добрый день!

Столкнулся с следующей проблемой - есть приложение , которое пишет очень много логов. Из них нужно отлавливать, что критические значения некоторых параметров не появляются чаще, чем скажем 5 значений за 1 минуту, в противном случае соответственно сигнализировать. Для этого придумали следующую конструкцию:

tail -F console.log | grep critical_parametr > console.critical.log

т.е. выводить отдельный лог только с критическими параметрами и уже его чекать раз в минуту на количество добавленных строк. Так вот, если мы просто на консоли даём команду

tail -F console.log | grep critical_parametr

то значения обновляются в реальном времени, а когда используем перенаправление в > console.critical.log в нём значения появляются уже с какой-то странной задержкой. А точнее не с задержкой, а когда файл console.critical.log достигает значений кратных 4096 байт. Возможно ли заставить писать в файл сразу же по получении новой строчки, и вообще подскажите пожалуйста, с чем это может быть связано - куда копать???


tail -F console.log | awk '/critical_parametr/ {print; fflush()}'

sdio ★★★★★ ()
Ответ на: комментарий от DonkeyHot

sdio,DonkeyGot - спасибо!

А какое магическое слово для небуферизированного вывода будет в случае использования sed ?

epiq ()
Ответ на: комментарий от epiq

А в man sed посмотреть какая религия не позволяет?

 -u, --unbuffered

        load  minimal amounts of data from the input files and flush the
        output buffers more often
sdio ★★★★★ ()
Ответ на: комментарий от sdio

глядел-глядел-недоглядел видать, извиняюсь ) спасибо!!!

epiq ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.