Oglądam różne dzienniki
tail -q -f /var/log/syslog -f /var/log/fail2ban.log -f /var/log/nginx/error.log
Jak mogę inaczej wydrukować dane wyjściowe każdego dziennika?
command-line
colors
tail
Daniel W.
źródło
źródło
multitail
i odpowiedzi na to pytanieOdpowiedzi:
Używanie GNU
grep
do kolorowania:Zauważ, że pierwsze 2 są uruchamiane w tle. Oznacza to, że nie zostaną zabici, jeśli naciśniesz Ctrl-C(powłoka jawnie ignoruje SIGINT dla zadań asynchronicznych).
Aby temu zapobiec, możesz zamiast tego:
W ten sposób Ctrl-Costatni
tail+grep
icat
umierają (SIGINT), a pozostałe dwa ogony grep + umrą z SIGPIPE następnym razem, gdy coś napiszą.Lub przywróć procedurę obsługi SIGINT (nie będzie działać ze wszystkimi powłokami):
Możesz to również zrobić w
color
funkcji. Nie dotyczy totail
, aletail
umrze z SIGPIPE następnym razem, gdy napisze, jeśligrep
umrze.Lub uczyń cały ogon + grep funkcją:
Lub cała sprawa:
źródło
tailc
funkcję, która działała najlepiej i wygląda najbardziej intuicyjnie w skrypcie.Coś takiego działało dla mnie:
Wyjaśnienie:
tail -f file
: dołączaj dane w miarę powiększania się plikuawk -W interactive
: ustawawk
tryb interaktywny'{printf "\033[1;31m%s\033[0m\n", $0}'
wypisuje wyjście skolonizowane do terminala.\033[1;31m
oznacza czerwony\033[1;32m
oznacza zielony\033[1;34m
oznacza niebieskiźródło
-W interactive
wydaje się byćmawk
specyficzny. (mawk
domyślnie sposób buforowania danych wejściowych jest unikalny i-W interactive
nie byłby potrzebny w innychawk
implementacjach).