Je regarde différents journaux par
tail -q -f /var/log/syslog -f /var/log/fail2ban.log -f /var/log/nginx/error.log
Comment puis-je colorer différemment la sortie de chaque journal?
command-line
colors
tail
Daniel W.
la source
la source
multitail
et les réponses à cette questionRéponses:
Utiliser GNU
grep
pour la coloration:Notez que les 2 premiers sont démarrés en arrière-plan. Cela signifie qu'ils ne seront pas tués si vous appuyez sur Ctrl-C(le shell ignore explicitement SIGINT pour les travaux asynchrones).
Pour éviter cela, vous pouvez faire à la place:
De cette façon, Ctrl-Cle dernier
tail+grep
et le derniercat
(du SIGINT) et les deux autres queues grep + mourront d'un SIGPIPE la prochaine fois qu'ils écrivent quelque chose.Ou restaurez le gestionnaire SIGINT (ne fonctionnera pas avec tous les shells):
Vous pouvez également le faire dans la
color
fonction. Cela ne s'appliquera pastail
, maistail
mourra d'un SIGPIPE la prochaine fois qu'il écrit s'ilgrep
meurt.Ou faites de l'ensemble queue + grep une fonction:
Ou le tout:
la source
tailc
fonction qui fonctionnait le mieux et qui semble la plus intuitive dans le script.Quelque chose comme ça a fonctionné pour moi:
Explication:
tail -f file
: ajouter des données à mesure que le fichier granditawk -W interactive
: passerawk
en mode interactif'{printf "\033[1;31m%s\033[0m\n", $0}'
imprimer la sortie colorisée sur le terminal.\033[1;31m
signifie rouge\033[1;32m
signifie vert\033[1;34m
signifie bleula source
-W interactive
semble êtremawk
spécifique. (la façon dont lamawk
mémoire tampon de son entrée par défaut est également unique et-W interactive
ne serait pas nécessaire dans d'autresawk
implémentations).