GNU/Linux >> Tutoriales Linux >  >> Linux

Comando de shell para monitorear cambios en un archivo

Solución 1:

¿Quieres decir

tail -f logfile.log

?

(Página man para la cola)

Solución 2:

Probablemente quisiste decir cola, según la respuesta de Jon Skeet.

Otro útil es reloj; le permite ejecutar un comando periódicamente y ver la salida a pantalla completa. Por ejemplo:

watch -n 10 -d ls -l /var/adm/messages

Ejecutará el comando ls -l /var/adm/messages cada 10 segundos y resalte la diferencia en la salida entre ejecuciones posteriores. (Útil para ver qué tan rápido crece un archivo de registro, por ejemplo).

Solución 3:

inotifywait from inotify-tools es útil si desea ejecutar un comando cada vez que cambia un archivo (o cualquier archivo en un directorio). Por ejemplo:

inotifywait -r -m -e modify /var/log | 
   while read path _ file; do 
       echo $path$file modified
   done

Solución 4:

Prefiero usar less +FG sobre tail -f porque me veo en la necesidad de buscar en un archivo de registro un error o ID específico. Si necesito buscar algo, escribo ^C para dejar de seguir el archivo y ? para empezar a buscar hacia atrás.

Las combinaciones de teclas son prácticamente las mismas que en vi . Cualquier comando se puede inicializar al inicio usando el + opción:

+cmd   Causes  the  specified  cmd  to be executed each time a new file is
       examined.  For example, +G causes less to  initially  display  each
       file starting at the end rather than the beginning.

Para registros muy largos, me parece conveniente usar el -n opción que desactiva la numeración de líneas. Desde la página de manual:

-n or --line-numbers
          Suppresses line numbers.  The default (to use line numbers)  may
          cause  less  to run more slowly in some cases, especially with a
          very large input file.  Suppressing line  numbers  with  the  -n
          option  will  avoid this problem.  Using line numbers means: the
          line number will be displayed in the verbose prompt and in the =
          command,  and the v command will pass the current line number to
          the editor (see also  the  discussion  of  LESSEDIT  in  PROMPTS
          below).

1. Felicitaciones a rgmarcha por señalar esto en los comentarios.

Solución 5:

La cola es genial ... también se puede usar menos comenzar con menos en el archivo, es decir, menos mi archivo y luego presionar Shift +F . Esto tiene menos acto como cola.


Linux
  1. Cuando usamos el comando Mv, ¿qué cambios tienen lugar en el disco duro?

  2. ¿Archivo duplicado X veces en Command Shell?

  3. Comando wc de linux

  4. Linux menos comando

  5. ¿Cómo ejecutar un comando cada vez que cambia un archivo?

Comando Stat en Linux

Comando fuente en Linux

Cómo monitorear cambios de archivos usando fswatch en Linux

Cómo redirigir la salida del comando de shell

Construcción de comandos

¿Qué es un archivo .sh?