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
:

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í.
Hay 3 comentarios
tú lo has dicho: Sencillo... pero elegante y sobre práctico. Mola que haya gente que comparta estas "cositas". au.
por un visitante, en 2009-04-24 00:09:22 ∞
Los comentarios están cerrados: los comentarios se cierran automáticamente una vez pasados 30 días. Si quieres comentar algo acerca de la anotación, puedes hacerlo por e-mail.
por elpeor, en 2009-04-23 12:43:27 ∞