Cola múltiples archivos de registro

Tengo una aplicación que genera nuevos archivos de registro cada vez que se ejecuta. Todos van a una carpeta, con nombres de archivo como este, y el siguiente registro no se inicia hasta que finaliza el actual.

Log-20140122102407.txt
Log-20140122102739.txt
Log-20140122103640.txt
Log-20140122162121.txt
Log-20140122163145.txt

Quiero monitorear el progreso actual en una ventana de terminal, tail -fpero eso no funcionará con varios archivos. He oído hablar de multitail, pero no sé cómo usarlo y no quiero que mi ventana de terminal se divida en varias secciones.

Respuestas (1)

cola

tailpuede rastrear varios archivos. El artículo de Donovan Bray explica más, cola: puede seguir varios archivos simultáneamente, ¿quién sabe? y otros trucos de cola.

Para seguir varios archivos, pase un patrón de archivo:

tail -f Log-*

multicola

Puede pedirle a multitail que combine la salida de varios archivos. La página de ejemplos contiene enfoques y trucos útiles.

Este comando combina y sigue dos registros:

multitail /var/log/apache/access.log -I /var/log/apache/error.log

Si necesita seguir los registros en una carpeta, incluidos los que se están creando activamente, use la -qbandera:

multitail -q 'test*'

Esto rastreará cualquier archivo que coincida con el patrón test*, incluidos los que aparecen después de que se haya emitido el comando. Gracias a @folkert-van-heusden por esta sugerencia y corrección de código.

Si tiene homebrew instalado, puede instalar multitailusando el comando Terminal.app:

brew install multitail

Ver también:

Por lo que puedo decir, ninguna de esas soluciones funciona porque no reconoce los archivos de registro futuros que se crean después de ingresar el comando.
No conozco ninguna herramienta que haga esto. Si su comando incluye un comodín * entonces, puede presionar 'Comando +'. para interrumpir la cola, presione hacia arriba y, finalmente, presione Intro para reanudar el registro con los archivos más recientes.
elliott: ¿has marcado -q y -Q? tal vez sean de utilidad?
normalmente multitail -Q debería funcionar en este caso, pero noté que está roto. ¡trabajando en ello!
Ok, lo arreglé: -q/-Q ahora debería funcionar (en multitail v6.1). Probado por: multitail -q 'test*' y luego en otra ventana de terminal: sleep 3 ; eco 1 > prueba1 ; dormir 3; eco 2 > prueba2 ; dormir 3; eco 3 > prueba3 ; dormir 3; etc.