Coloreando patrones

Enero 14th, 2008

Hoy estaba revisando algunos logs y pensé: ojalá pudiera resaltar con colores algunos patrones, me ayudaría mucho. Por supuesto, la primera idea que se me vino a la cabeza fue usar el grep:

# grep –colour PATRON /var/log/messages

Pero el grep elimina todas las líneas que no contienen el patrón y eso tampoco me interesaba. Busqué en la web un rato y encontré varias utilidades que coloreaban ficheros de logs completos, pero tampoco era lo que quería.

Lo que necesitaba era una utilidad que me resaltara sólo ciertos patrones y que me devolviera el contenido íntegro del fichero de logs. Eso sí que estaría bien. Y diría que hace tiempo me encontré con una utilidad que hacía exactamente eso… pero como no daba con ella y tampoco quería pasarme toda la mañana buscándola, escribí un pequeño script en perl que hacía todo lo que yo necesitaba. No soporta expresiones regulares (de momento) pero es suficiente para lo que yo lo quiero. Os pongo un par de ejemplos de uso:

1. Si lo ejecutamos sin parámetros nos sale una ayuda muy cutre. Básicamente nos dice que necesita al menos un patrón que colorear. El script sólo admite cuatro patrones como máximo (pero es muy sencillo modificarlo para que admita más). Cada patrón será resaltado con un color distinto.

# highlight
ERROR: Necesito al menos un patrón que sobresaltar
Uso: /usr/local/bin/highlight patron [patron2] [patron3] [patron4]

2. Coloreamos el log del iptables para que resalte los patrones ‘SPT=’, ‘DPT=’ y ‘Output’.

# cat iptables.log | highlight SPT= DPT= Output

3. Similar al anterior pero usanto un tail:

# tail -f iptables.log | highlight Input SPT= DPT= src= DST=


Descargar Highlight Script

Categorías: descargas, interesante, linux |

Deja un comentario