martes, 20 de noviembre de 2012

Como analizar ficheros de log de varios gigabytes de tamaño con Cygwin


 ¿Que hacer para analizar varios ficheros de log de más de 3 Gb de tamaño cada uno y que contienen 100 millones de líneas de texto por fichero?

 Pues lo más directo puede ser usar un editor de texto como el Bloc de Notas (Notepad) en Windows, pero con ese tamaño se colapsa sin remedio. Su sucesor mejorado, Notepad++, tampoco puede con ello y un software que seguro que podría, Ultraedit, resulta que no es gratuito.

 Sin embargo, los sistemas operativos Unix/Linux tienen de serie estupendas herramientas para manejar ficheros de texto de todo tipo. Para probar, arrancamos nuestra distribución Linux favorita y nos ponemos con ello. Este simple comando nos permite analizar el fichero completo:

less seguridad_log.csv  | grep -A 30 ,4624, | grep -A 25 admin | grep 'Source Network Address' > salida_audit.txt

less vuelca el fichero a la salida estándar y los dos grep capturan las palabras clave que nos interesan; finalmente > vuelca la salida que buscamos a un fichero. Desde luego ¡es muy fácil!

 Si no tenemos un Linux a mano podemos usar Cygwin, que es una dll que nos permite ejecutar comandos de Linux en Windows. Descargamos la distribución básica y en unos minutos estamos funcionando con less y grep en Windows.

 Como ejemplo de la potencia de esta manera de analizar los logs, decir que en mi portátil con dos años de antigüedad toma tan solo 1 min para analizar un fichero con 100 millones de líneas y 3 Gb de tamaño.


Vista de una ventana Cygwin

No hay comentarios:

Publicar un comentario