Задать вопрос
@Chase_Norman

Как отзеркалировать log файл предварительно его профильтровав с помощью grep?

Подскажите пожалуйста в таком вопросе:

Есть лог который пишется скажем в /run/test/1.log
Важно его оставить как есть, но создать его копию которая на лету будет фильтроваться через grep

Набросал такой конвейер который не работает:
tail -f /run/test/1.log | grep "искомые стоки" > /var/www/html/1.log

Но вот так работает:
tail -f /run/test/1.log > /var/www/html/1.log

Вопрос, почему grep всё ломает и можно ли с этим что-то сделать?
  • Вопрос задан
  • 98 просмотров
Подписаться 1 Простой 6 комментариев
Решения вопроса 2
@dronmaxman
VoIP Administrator
Попробуй так
tail -f /run/test/1.log | grep --line-buffered  "искомые стоки" >> /var/www/html/1.log
Ответ написан
Комментировать
saboteur_kiev
@saboteur_kiev Куратор тега Linux
software engineer
Все у вас работает.
Просто запись в файл буферизируется, и пишется непострочно а поблочно.
Подождите немного, пока данных накопится и они в файле появятся.

Или можно так:
указать grep --line-buffered
использовать stdbuf -o0 grep (или любую другую команду)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@y0sh
tail тоже не все сразу отдает.
tail -fn0 /run/test/1.log | grep --line-buffered "искомые стоки" >> /var/www/html/1.log
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы