Estoy viendo diferentes registros por
tail -q -f /var/log/syslog -f /var/log/fail2ban.log -f /var/log/nginx/error.log
¿Cómo puedo tener la salida de cada registro coloreado de manera diferente?
command-line
colors
tail
Daniel W.
fuente
fuente
multitail
y las respuestas en esta preguntaRespuestas:
Usando GNU
grep
para colorear:Tenga en cuenta que los primeros 2 se inician en segundo plano. Eso significa que no se eliminarán si presiona Ctrl-C(el shell ignora explícitamente SIGINT para trabajos asincrónicos).
Para evitar eso, puedes hacer lo siguiente:
De esa manera, Ctrl-Cel último
tail+grep
y elcat
dado (del SIGINT) y los otros dos grep + tails morirán de un SIGPIPE la próxima vez que escriban algo.O restablezca el controlador SIGINT (no funcionará con todos los shells):
También puedes hacerlo en la
color
función. Eso no se aplicarátail
, perotail
morirá de un SIGPIPE la próxima vez que escriba sigrep
muere.O haga que toda la cola + grep sea una función:
O todo el asunto:
fuente
tailc
función que mejor funcionó y se ve más intuitiva en el script.Algo como esto funcionó para mí:
Explicación:
tail -f file
: agregar datos a medida que el archivo creceawk -W interactive
: establecerawk
en modo interactivo'{printf "\033[1;31m%s\033[0m\n", $0}'
imprime la salida coloreada en el terminal.\033[1;31m
significa rojo\033[1;32m
significa verde\033[1;34m
significa azulfuente
-W interactive
parece sermawk
específico. (la forma en quemawk
almacena su entrada de forma predeterminada también es única, y-W interactive
no sería necesaria en otrasawk
implementaciones).