lunes, 26 de julio de 2010

Barajitas premiadas (#12) - tail

Del artículo Chat p2p Netcat cifrado con OpenSSL espero sacar varias barajitas...

La primera, tiene que ver con el comando tail. Este comando permite ver las últimas líneas de un archivo. Por ejemplo, a continuación se mostrarán las últimas 20 líneas del archivo de logs del sistema; muy útil para obtener información cuando se adjunta algún equipo al computador (ver también dmesg).

# tail -20 /var/log/messages

Ahora, este comando posee una opción poderosa que permite ver el contenido de un archivo en línea, de forma sigilosa (opción -f), es decir, conforme este cambie se irán mostrando sus registros... Esto es súper útil para chequear logs del sistema (Ej. logs de un servidor HTTP).

#  tail -f /var/log/apache2/error.log

Y para finalizar el artículo, hay veces en las que deseo realizar una tarea para cada nuevo registro escuchado por el tail, para ello puedo utilizar el comando read dentro de un bucle de la siguiente forma:

#  tail -f /var/log/apache2/error.log | while read -r line; do php procesador.php $line; done

El comando mostrado arriba ejecutará el script procesador.php para cada nueva línea dentro del archivo /var/log/apache2/error.log. Podríamos suponer que el script se conecta a una BD y deja el nuevo registro en ella.


No hay comentarios:

Publicar un comentario