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

multitaily las respuestas en esta preguntaRespuestas:
Usando GNU
greppara 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+grepy elcatdado (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
colorfunción. Eso no se aplicarátail, perotailmorirá de un SIGPIPE la próxima vez que escriba sigrepmuere.O haga que toda la cola + grep sea una función:
O todo el asunto:
fuente
tailcfunció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: establecerawken modo interactivo'{printf "\033[1;31m%s\033[0m\n", $0}'imprime la salida coloreada en el terminal.\033[1;31msignifica rojo\033[1;32msignifica verde\033[1;34msignifica azulfuente
-W interactiveparece sermawkespecífico. (la forma en quemawkalmacena su entrada de forma predeterminada también es única, y-W interactiveno sería necesaria en otrasawkimplementaciones).