Usiłuję uzyskać działający system do monitorowania specjalnych dzienników. Zwykle chcę tylko bardzo konkretnego wzoru, z którego wydobywam, grepi fajki tail -f. Zauważyłem, że grep nie wyświetla wszystkiego, ale zamiast tego zachowuje bufor niektórych linii. Myślę, że ma to sens, jeśli masz potok, który wyprowadzi wszystko, a następnie zakończy i zamknie strumień.
Ale tail -fto mi nie wychodzi.
Ten sam problem występuje z sed.
Oto przykładowe polecenie, którego chcę użyć:
clear && tail -F -n1000 /var/log/fail2ban.log | grep 'WARNING.*Ban' | sed s/'fail2ban.actions: WARNING '//g | grep -E --color 'ssh-iptables-perma|$'
Aby podać przykład:
Ostatni wiersz powyższego polecenia to:
2015-05-04 11:17:24,551 [ssh-iptables] Ban x.x.x.x
I używając tego polecenia:
clear && tail -F -n1000 /var/log/fail2ban.log | grep 'WARNING.*Ban' | sed s/'fail2ban.actions: WARNING '//g
Ostatnia linia to:
2015-05-04 19:45:17,615 [ssh-iptables] Ban y.y.y.y
Usunięcie kolejnych potoków prowadzi mnie do najnowszych wpisów.
Jak mogę uniknąć buforowania w rurach?
sed.