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
Fuente: linuxito