Tengo un software que rota sus archivos de registro cuando se reinicia. Sin embargo, durante el desarrollo, lo reinicio mucho, por lo que me gustaría monitorear el último archivo de registro en cualquier momento.
Si empiezo less
normalmente con less program.log
y presiono Shift+ fen la cola, cuando el archivo de registro se gira, continúo monitoreando el archivo de registro anterior. Supongo que esto se debe a que el número de inodo permanece igual y less
tiene un identificador de archivo abierto para ese inodo.
¿Es posible monitorear la última actividad en cualquier archivo de registro que se llame actualmente program.log
?
Específicamente, estoy trabajando en Sun OS, por lo que una solución que funcione allí sería ideal.
tail -F program.log | less
funcionetail -f program.log
has intentado esto?Respuestas:
Úselo
less --follow-name
si su versión de loless
admite. Esa opción se introdujo en la versión 416.fuente
La
less
opción--follow-name
es solo una parte de la solución;Para reemplazar
tail -F
, se necesita otro argumento:La opción solo como en
less --follow-name file.log
realidad no comienza a seguir las actualizaciones del archivo. Debe ingresar al modo de seguimiento presionando ShiftF.(Salga del modo para navegar ControlC).
En lugar de seguir el archivo,
--follow-name
modifica el comportamiento de less.Hace que la tecla de comando ShiftFdentro de
less
seguir se base en el nombre del archivo, no en el descriptor del archivo.Además, no hay una opción normal para comenzar
less
en modo de seguimiento.Pero puede usar la línea de comando para dar pulsaciones de teclas para ejecutar después del inicio, prefijándolas con
+
.La combinación de la opción del modificador con
+F
, enless
realidad comenzará en el modo de seguimiento (modificado).Úselo
+F
solo para el equivalente de plaintail -f
:fuente
Acabo de encontrar la respuesta en estas preguntas y respuestas de U&L tituladas: ¿Cómo hacer un
tail -f
registro de archivos rotados? .Utilizando
tail
:(si instalar GNU tail en su sistema es una opción)
Desde la página del manual de la cola :
La clave es el
--retry
interruptor. Esto le dice altail
comando que siga intentando volver a seguir un archivo por su nombre. El-F
interruptor hace tanto a-f
como a--retry
.Utilizando
less
Como @StephaneChazela señaló en los comentarios, lo siguiente no funcionará.
La única otra opción que tiene es usar menos directamente, suponiendo que sea compatible con el
--follow-name
interruptor yless
el archivo directamente, dejando de usarlo portail
completo.fuente
less
se colgará si haces "G" pr "F". Lo que puedes interrumpir haciendo "Ctrl-C", pero luego mata la cola. Luego puede inmunizar la cola a Ctrl-C, pero aún no es muy útil.