Tengo un directorio lleno de archivos de registro continuos que me gustaría poder usar de manera simultánea.Tailing Rolling Files
Los archivos se denominan como tales:
name modified
00A.txt Dec 27 19:00
00B.txt Dec 27 19:01
00C.txt Dec 27 19:02
00D.txt Dec 27 19:03
En un sistema UNIX más viejo, que estoy tratando de llegar a un script de shell que se cola el archivo modificado más recientemente en un directorio específico, y si ese archivo se cierra administrativamente (pasa al siguiente archivo) Quiero que el programa comience automáticamente a seguir el nuevo archivo sin que tenga que salir de la cola para volver a ejecutarlo.
tail -100f `ls -t | head -1`
El comportamiento deseado, teniendo en cuenta los nombres de los archivos anteriores, sería algo así:
./logtailer.sh
A continuación, la secuencia de comandos comenzaría tizón 00D.txt. Tan pronto como el registrador terminó de escribir en 00D.txt y el archivo de registro más nuevo ahora se llamaba 00E.txt, el programa comenzaría automáticamente a rastrear ese archivo.
Se podría escribir esta secuencia de comandos al ver el resultado de la cola del texto "Archivo cerrado administrativamente" y luego ejecutar de nuevo el siguiente comando.
tail -100f `ls -t | head -1`
¿Hay una forma más elegante de hacer esto que mirando el texto "archivo cerrado administrativamente"? ¿Cómo puedo leer la salida de la cola línea por línea en un script de shell?
Editar: Debo explicar que la bandera -F para la cola no es una opción para mí en este sistema. Utiliza una versión diferente de cola que no contiene esta característica. Versión del sistema operativo - Solaris 10
me gustaría poder utilizar esta bandera, pero mi versión de cola no tiene esta característica y no tengo la opción de actualizar eso. (Sin derechos administrativos) – user1118047
¿Puede proporcionar la 'versión info' de' tail' y 'box (unix/linux)' que está utilizando? –
SunOS 5.10 No está seguro de cómo encontrar la versión de la cola ... – user1118047