Ich beobachte verschiedene Protokolle von
tail -q -f /var/log/syslog -f /var/log/fail2ban.log -f /var/log/nginx/error.log
Wie kann ich die Ausgabe jedes Protokolls anders färben lassen?
command-line
colors
tail
Daniel W.
quelle
quelle
multitail
und die Antworten in dieser Frage habenAntworten:
Verwendung von GNU
grep
für die Färbung:Beachten Sie, dass die ersten 2 im Hintergrund gestartet werden. Das bedeutet, dass sie nicht getötet werden, wenn Sie drücken Ctrl-C(Shell ignoriert SIGINT explizit für asynchrone Jobs).
Um dies zu verhindern, können Sie stattdessen Folgendes tun:
Auf diese Weise sterben Ctrl-Cdas letzte
tail+grep
und das letzte undcat
die beiden anderen Grep + Tails eines Sigpipes, wenn sie das nächste Mal etwas schreiben.Oder stellen Sie den SIGINT-Handler wieder her (funktioniert nicht mit allen Shells):
Sie können dies auch in der
color
Funktion tun . Das trifft nicht zutail
,tail
stirbt aber beim nächsten Schreiben an einem Sigpipe, wenn esgrep
stirbt.Oder machen Sie den ganzen Schwanz + grep zu einer Funktion:
Oder das Ganze:
quelle
tailc
Funktion entschieden, die am besten funktioniert und im Skript am intuitivsten aussieht.So etwas hat bei mir funktioniert:
Erläuterung:
tail -f file
: Daten anhängen, wenn die Datei wächstawk -W interactive
:awk
auf interaktiven Modus einstellen'{printf "\033[1;31m%s\033[0m\n", $0}'
Drucken Sie die Ausgabe farbig auf das Terminal.\033[1;31m
bedeutet rot\033[1;32m
bedeutet grün\033[1;34m
bedeutet blauquelle
-W interactive
scheintmawk
-spezifisch zu sein. (Die Art und Weise, in dermawk
die Eingabe gepuffert wird, ist ebenfalls eindeutig und wird-W interactive
in anderenawk
Implementierungen nicht benötigt. )