Mostrar un archivo de registro de "desplazamiento"

28

A través de la línea de comando, tengo un archivo de registro que me gustaría seguir.

Lo que quiero es tener, básicamente, una tailactualización que se actualice cuando se actualice el registro haciendo que el texto se desplace hacia arriba a medida que se agreguen nuevas líneas al archivo de registro.

¿Hay algo por ahí que haga eso sin tener que escribir algún código?

WernerCD
fuente

Respuestas:

35

tailtiene la -fopción:

De la manpágina:

-f, --follow [= {name | descriptor}] da salida a los datos agregados a medida que crece el archivo; -f, --follow y --follow = descriptor son equivalentes

Por lo tanto, si escribe:

tail -f [path_and_name_of_logfile] - verá la salida en el terminal a medida que se agrega el archivo de registro.

NB [path_and_name_of_logfile]es el parámetro, así que para dar un ejemplo:

tail -f /var/log/messages

Si se combina con la -n [number_of_lines]opción, puede iniciar la salida desde el último [número_de_líneas] en el archivo, por ejemplo

tail -n 10 -f /var/log/Xorg.0.log

ingrese la descripción de la imagen aquí


Algunos programas cambiarán periódicamente su archivo de registro, moviendo el antiguo a un nuevo nombre (por ejemplo, log.0) y comenzando de nuevo.

NB logrotate hace esto para registrar archivos para otros programas que no lo hacen ellos mismos.

tail -f continuará siguiendo el archivo anterior después de cambiarle el nombre.

tail -F seguirá el archivo por su nombre, por lo que cambiará para seguir el nuevo archivo.

fossfreedom
fuente
ambas respuestas son acertadas ... no me di cuenta de que Tail tenía esa opción. obtienes el cheque para la información adicional.
WernerCD
Por otro lado, también hay algunos scripts increíbles para colorear su registro de colas. Un ejemplo que viene a la mente es colorize.pl, y lo logras canalizándolo a través del script de colorize. por ejemplo: tail -f / var / log / messages | /home/me/colorize.pl
lazyPower
@lazyPower Nice también. Tendré que jugar con eso, aunque no creo que sea muy útil en mi situación actual.
WernerCD
18

Si bien tailes sin duda la forma habitual de hacer esto, debe tenerse en cuenta que lesstiene la misma característica y, a veces, es más útil.

Si abrió un archivo con less, puede presionar Shift+ Fpara que siga el archivo (es decir, mostrará nuevas líneas, al igual tail -fque). Puedes salir de este modo con Ctrl+C

También puede comenzar lesscon la +Fopción, en cuyo caso comenzará en ese modo. En general, +se puede usar para dar "comandos de teclado" a los lessque se ejecutará al inicio.

Usar lessesto tiene la ventaja de que puede buscar fácilmente el archivo o ver otras áreas si surge la necesidad. Con frecuencia lo he hecho con archivos de registro, por ejemplo.

Joachim Sauer
fuente
Nunca escuché sobre "seguir" (más, menos, cola, gato). Es bueno saber cosas.
WernerCD
1
Convenido. Prefiero mucho menos. Ctrl-C detendrá el desplazamiento cuando detecte algo interesante, luego b para desplazarse hacia atrás o hacia adelante y / o? para buscar hacia adelante o hacia atrás. g lo llevará al inicio del archivo y G al final. Todo lo que necesitas.
Martin Dow
6

Hace

tail -f something.log

¿Haz lo que quieras?

Florian Diesch
fuente
4

tail tiene dos implementaciones para seguir y generar datos que se agregan a un archivo

  • siga el descriptor de archivo
  • seguir un archivo con un nombre determinado

Con parámetro -f, --followy --follow=descriptor, tailsigue el descriptor de archivo. Este método permite que el archivo se siga a través de un cambio de nombre, pero el seguimiento se detiene cuando se gira el archivo (se crea un nuevo archivo con un descriptor de archivo diferente).

Cuando siga los archivos rotados, use --follow=nameo el -Fparámetro que equivale a --follow=name --retry. De esa forma, se tailvolverá a abrir periódicamente el archivo para superar la posible rotación.

Jawa
fuente
1

Creo que ccze es la herramienta adecuada para ti.

Hace lo mismo de colorear. Puede ver el registro desplazándose hacia abajo, pero es más fácil de leer, ya que las líneas se imprimen con colores (errores en rojo, etc.). Puedes probarlo rápidamente con algo como esto:

tail -f /var/log/syslog | ccze
Gelma
fuente