Tail -f último archivo modificado en la carpeta

Tail -f último archivo modificado en la carpeta

Estoy intentando utilizarlo tail -fpara seguir un archivo de inicio de sesión en una carpeta específica. Puedo hacer esto con el comando simple tail -f [path to file], pero ¿hay alguna manera de tener un comando que se ejecute y rastree el archivo más reciente/último modificado en una carpeta? De ninguna manera soy un experto en esta área, por lo que cualquier ayuda es muy apreciada.

Respuesta1

Podrías ejecutar los ls -tp | sort | grep -v / | tail -n 1comandos y pasarlos por unforbucle para luego ejecutar solo el tail -Fcomando en el archivo más nuevo para monitorearlo en busca de cambios de contenido. También podrías considerar los ls -tpr | grep -v / | tail -n 1comandos.

for VAR in $(ls -tp | sort | grep -v / | tail -n 1); do tail -F $VAR; done

o

for VAR in $(ls -tpr | grep -v / | tail -n 1); do tail -F $VAR; done

Recursos adicionales

  • ls

       -t     sort by modification time, newest first
    
       -p, --indicator-style=slash
              append / indicator to directories
    
       -r, --reverse
              reverse order while sorting
    
  • sort

  • grep

    -v, --invert-match
    Invert the sense of matching, to select non-matching lines. (-v is specified by POSIX .)
    
  • tail

      -n, --lines=[+]NUM
              output the last NUM lines, instead of the last 10; or use -n
              +NUM to output starting with line NUM
    

Respuesta2

Podrías usar Multicola, disponible como paquete estándar en muchas distribuciones.

Ejemplo 1: fusionar dos archivos de registro en una ventana con diferentes colores

multitail -ci green /var/log/yum.log -ci yellow -I /var/log/mysqld.log

ingrese la descripción de la imagen aquí

Ejemplo 2: mostrar cinco archivos de registro, fusionando dos en una columna

 multitail -s 2 -sn 1,3  /var/log/mysqld.log -I /var/log/xferlog /var/log/monitorix /var/log/ajenti.log /var/log/yum.log

ingrese la descripción de la imagen aquí

Fuente: MultiTail: supervise varios archivos simultáneamente en una única terminal de Linux.

información relacionada