Estou assistindo diferentes logs
tail -q -f /var/log/syslog -f /var/log/fail2ban.log -f /var/log/nginx/error.log
Como posso ter a saída de cada log colorida de maneira diferente?
command-line
colors
tail
Daniel W.
fonte
fonte
multitail
e as respostas nesta pergunta #Respostas:
Usando o GNU
grep
para colorir:Observe que os dois primeiros são iniciados em segundo plano. Isso significa que eles não serão eliminados se você pressionar Ctrl-C(o shell ignora explicitamente o SIGINT para trabalhos assíncronos).
Para evitar isso, você pode fazer:
Dessa forma, após Ctrl-Co último
tail+grep
ecat
morrer (do SIGINT) e os outros dois grep + caudas morrerão de um SIGPIPE na próxima vez que escreverem algo.Ou restaure o manipulador SIGINT (não funcionará com todos os shells):
Você também pode fazer isso na
color
função Isso não se aplicatail
, mastail
morrerá de um SIGPIPE na próxima vez que ele gravar segrep
morrer.Ou crie uma função inteira + grep:
Ou a coisa toda:
fonte
tailc
função que funcionou melhor e parece mais intuitiva no script.Algo assim funcionou para mim:
Explicação:
tail -f file
: acrescenta dados à medida que o arquivo cresceawk -W interactive
: definidoawk
para o modo interativo'{printf "\033[1;31m%s\033[0m\n", $0}'
imprima a saída colorida no terminal.\033[1;31m
significa vermelho\033[1;32m
significa verde\033[1;34m
significa azulfonte
-W interactive
parece sermawk
específico. (a maneira comomawk
sua entrada é armazenada em buffer por padrão também é exclusiva e-W interactive
não seria necessária em outrasawk
implementações).