LINUX.ORG.RU
ФорумAdmin

Скрипт смотрящий в лог

 


0

1

Доброго времени суток коллеги! Помогите реализовать простую задумку,но уже несколько часов не могу придумать рабочее решение.

суть такая, есть некий лог в /var/log/log хочу в него смотреть в реальном времени, но «tail -f /var/log/log» выдает весь лог, от чего глаз дёргается.

Пробуем «tail -f /var/log/log | grep 123» - чудесно, теперь я вижу только то, что мне нужно. Но есть еще момент, необходимо в этом выводе менять некоторое невнятное месево на читабельный текст, типо " sed ‘s/dfjsoi/event1/’ "

Вот тут то и затык ибо " tail -f /var/log/log | sed ‘s/dfjsoi/event1/’ | grep 123 " работает не так как нужно - нужные строки отображаются тогда, когда в след за нужной строкой (grep 123) появляется еще что то.

Прошу помощи)

Ответ на: комментарий от MaxPower

так вообще ничего не кажет.. что то мне подсказывает проблема именно в sed. Т.к. если запустить " tail -f /var/log/log | sed ‘s/dfjsoi/event1/’" то так же, пока новая строка не появится, то строка с заменой не отобразится, но, когда в вывод появляется нужная строка - время у нее то, когда это событие и произошло.

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

tail -f log | awk ‘/123/ {sub(…); print; fflush()}’

дико стыдно, но мои знания по awk очень скудны =( если вкратце - что тут происходит то вообще?

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

так вообще ничего не кажет.

Буффер grep отключи (опция --line-buffered):

$ tail -f /var/log/dmesg | grep --line-buffered "RFCOMM" | sed 's/layer/place/'
anonymous ()

Скрипт смотрящий в лог

Fixed: Однострочник смотрящий в лог.

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

есть еще вариант изменения параметров буферизации утилитой stdbuf (в openwrt вроде есть)

tail -f /var/log/log | stdbuf -o0 sed ‘s/dfjsoi/event1/’ | grep 123
CaHbl4 ()

Так?

tail -f /var/log/log | sed -n '/123/ s/dfjsoi/event1/p'

anc ★★★★★ ()
Последнее исправление: anc (всего исправлений: 1 )
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.