A veces necesitamos hacer pruebas o debuggear un servicio o demonio y deseamos poder monitorear los eventos registrados en un archivo de log en tiempo real. Para tal fin es posible utilizar la herramienta tail.

La herramienta tail sirve para visualizar por salida estándar la última parte de un archivo. Es posible indicarle qué cantidad de bloques de 512 bytes (-b), bytes (-c) o número de líneas (-n) se desean obtener por salida estándar.

Normalmente tail detiene su ejecución al finalizar el archivo. Aunque existe una opción interesante que permite indicarle a tail que no se detenga al finalizar el archivo, sino que espere o siga (follow) indefinidamente cualquier contenido que pueda ser agregado más adelante, hasta que el proceso sea detenido (cuando el usuario envía la señal SIGINT utilizando la combinación de teclas Ctrl+C).

tail -f

Por ejemplo, si deseamos monitorear en tiempo real un archivo de log de errores de Apache, mientras accedemos al sitio en cuestión, simplemente se debe utilizar:

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

Luego, como el echo de caracteres de la entrada estándar está habilitado, es posible insertar algunos saltos de línea o caracteres especiales (los cuales no son agregados al archivo, simplemente repetidos en la salida estándar) para marcar la posición en la que comenzamos a monitorear:

root@debian# tail -f  /var/log/apache2/error.log
157.55.39.190 - - [20/May/2015:05:06:51 -0300] "GET / HTTP/1.1" 403 3023 "-" "Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)"
207.46.13.31 - - [20/May/2015:05:45:48 -0300] "GET / HTTP/1.1" 403 5202 "-" "Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)"
207.46.13.31 - - [20/May/2015:05:45:49 -0300] "GET / HTTP/1.1" 403 3023 "-" "Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)"
207.46.13.31 - - [20/May/2015:05:45:51 -0300] "GET / HTTP/1.1" 403 5202 "-" "Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)"
207.46.13.31 - - [20/May/2015:05:45:51 -0300] "GET / HTTP/1.1" 403 3023 "-" "Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)"
207.46.13.31 - - [20/May/2015:05:45:53 -0300] "GET / HTTP/1.1" 403 5202 "-" "Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)"
207.46.13.31 - - [20/May/2015:05:45:54 -0300] "GET / HTTP/1.1" 403 3023 "-" "Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)"
207.46.13.31 - - [20/May/2015:05:45:55 -0300] "GET / HTTP/1.1" 403 5202 "-" "Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)"
207.46.13.31 - - [20/May/2015:05:45:56 -0300] "GET / HTTP/1.1" 403 3023 "-" "Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)"
207.46.13.31 - - [20/May/2015:05:45:57 -0300] "GET / HTTP/1.1" 403 3023 "-" "Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)"



Agrego saltos de línea...

====== A partir de este punto empecé a monitorear ======
207.46.13.31 - - [20/May/2015:05:50:55 -0300] "GET / HTTP/1.1" 403 5202 "-" "Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)"
207.46.13.31 - - [20/May/2015:05:50:56 -0300] "GET / HTTP/1.1" 403 3023 "-" "Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)"
207.46.13.31 - - [20/May/2015:05:50:57 -0300] "GET / HTTP/1.1" 403 3023 "-" "Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)"
^C

Para cerrar tail simplemente se debe enviar Ctrl+C.

Para más información:

man 1 tail


Tal vez pueda interesarte


Compartí este artículo