Poner color a tail

Hoy he estado añadiendo medidas antispam, concretamente sqlgrey (Zimbra trabaja con Postfix, y no había una solución basada en Milter que me gustara).

Estaba viendo pasar trazas en los logs, y resulta que tengo los ojos muy desentrenados :(.

Para facilitarme las cosas he querido ver resaltadas unas trazas especiales, pero necesitaba que fuera dentro del contexto general, por lo que la opción --color de egrep, que es lo primero que he probado, no me valía.

Al final he usado sed(1) y algunas secuencias de escape ANSI, que funcionarán en cualquier terminal remota con SSH.

tailfc()
{
        if [ $# -ne 2 ]; then
                echo "usage: tailfc file expr"
        else
                # recordemos que el ^[ en amarillo se consigue con 
                # CTRL + v seguido de CTRL + [
                tail -f $1 | sed "s/\($2\)/^[[1;31m\1^[[0m/g"
        fi
}

Lo he añadido en ~/.bashrc y así se invoca como un comando interno del shell, indicando el log a seguir y la expresión que queremos ver remarcada.

Así, se ejecutamos el siguiente comando:

# tailfc /var/log/maillog "sqlgrey: .*"

Seguiremos el log del sistema de correo, marcando en rojo las trazas que genera sqlgrey:

Salida de tailfc
Se resaltan las tramas interesantes, que es lo que buscamos

El segundo parámetro puede ser cualquier expresión regular que entienda sed, así que partimos del tag que marca la trama interesante hasta el final de linea, y añadimos los códigos de color que deseemos (que podemos sacar del BASH Prompt How To).

Es bastante sencillo, pero me ha sido muy útil para seguir las trazas en tiempo real, dentro del contexto del tráfico de correo ;).

Cuando tenta una valoración del comportamiento de sqlgrey, ya lo comentaré por aquí.


Publicidad

Aviso: Los siguientes comentarios pertenecen a las personas que los han enviado.
El administrador de este sitio web no es responsable de los mismos.

[comentarios] Hay 3 comentarios:

Gravatar
23/04/2009 12:43:27
bashrc
por elpeor (IP: 81.202.167.*)
Comentario de elpeor
en gentoo te colorea casi todas esas aplicaciones con un paquete que no recuerdo ni como se llama...

muy útil el .bashrc, hoy he tenido que incluir :
if [ $DISPLAY != ":0.0" ]; then setxkbmap -model evdev -layout gb;
fi

porque en las sesiones de freenx con la ultima actualización no funcionaba bien el teclado, no reconocía todas las teclas(cosas de evdev imagino), de paso le pongo el teclado en britsh que es el que uso como cliente, ya que el server tiene un teclado en español.

yo me vuelvo loco con awk sed y demás con cosas así:

"s/\($2\)/^[[1;31m\1^[[0m/g"

aunque para eso uso "txt2regex" o modifico algún script de que pille por la red.
Gravatar
24/04/2009 00:09:22
sencillito
por un visitante (IP: 81.202.15.*)
Comentario de un visitante
tú lo has dicho: Sencillo... pero elegante y sobre práctico. Mola que haya gente que comparta estas "cositas". au.
Gravatar
24/04/2009 07:30:55
grc
por r0sk (IP: 91.117.81.*)
Comentario de r0sk
Yo uso grc (ya sabes: apt-get install grc), funciona con todo tipo de logs (access.log, maillog, auth.log, system.log, messages...). Antes había otro comando que se llamaba "colorize" o algo así, pero no he vuelto a saber más de él.

! Esta entrada no permite nuevos comentarios.

Los comentarios se bloquean automáticamente tras 15 días desde la publicación del artículo.

Si deseas comentar algo relacionado con el texto, puedes enviarme un e-mail.