Estoy intentando utilizarlo tail -f
para 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 1
comandos y pasarlos por unfor
bucle para luego ejecutar solo el tail -F
comando 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 1
comandos.
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
-
-t sort by modification time, newest first -p, --indicator-style=slash append / indicator to directories -r, --reverse reverse order while sorting
-
-v, --invert-match Invert the sense of matching, to select non-matching lines. (-v is specified by POSIX .)
-
-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
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
Fuente: MultiTail: supervise varios archivos simultáneamente en una única terminal de Linux.