¿Por qué deja de funcionar el modo menos cola?

11

El uso del lesscomando en Linux en modo de cola (comando F o menos -f) deja de funcionar de manera consistente en ciertas máquinas y / o ciertos archivos. Los nuevos cambios simplemente dejan de aparecer.

Sé que lo solucioné antes, hace mucho tiempo, pero no recuerdo cuál era la solución.

¿Algunas ideas?

ÁRBOL
fuente
¿Has intentado usar strace para ver lo que (no) está haciendo? Quizás veas un error.
wfaulk
Para su información, esto permanece sin respuesta porque el archivo en cuestión no se estaba enrollando / girando / recreando.
ÁRBOL

Respuestas:

12

Intenta usar less --follow-name. Incluso si el archivo tiene el mismo nombre, los procesos que lo actualizan pueden hacerlo de una manera que cambie el inodo del archivo, por lo que desde el punto de vista del sistema operativo, es un archivo nuevo después de las actualizaciones.

Doug Harris
fuente
+1 respuesta perfecta, es por eso que se introdujo esta opción. Tenga en cuenta que --follow-namese introdujo en menos v415 ( greenwoodsoftware.com/less/news.415.html ), lanzado el 15 de noviembre de 2007. Por lo tanto, la antigua instalación de Linux puede no tenerlo.
sleske
3

¿Está viendo archivos de registro que rotan mediante logrotate? Si se cambia el nombre del archivo que menos se está visualizando (por ejemplo, de log a log.0 mediante logrotate), less continuará viendo ese archivo, aunque se estén escribiendo nuevas entradas en un archivo diferente (con el nombre original).

Randy Orrison
fuente
Si este es el caso, intente tail --follow = name [filename] (lo que hace que tail vuelva a abrir periódicamente el archivo en caso de que cambie su nombre). Ver gnu.org/software/coreutils/manual/html_node/…
Randy Orrison
No, los registros no están girando. Es el mismo archivo.
ÁRBOL
1

tal vez podrías intentarlo en su tail -f [filename]lugar?

marca de fábrica
fuente
44
Con menos, puede "pausar su cola" (usando Ctrl-c) para subir a una línea específica y reanudar más tarde (usando F). Es por eso que en algunos casos se prefiere a "tail -f".
dogbane
tail -f funciona, pero preferiría trabajar con menos.
ÁRBOL
Veo. No sabía eso.
brandstaetter
0

Hago less +F --follow-name. --follow-namesolo monitorea el archivo con el mismo nombre sin recibir los cambios entrantes en mi caso (CentOS 7).

En realidad creo un alias para esto:

Agregue esta línea en /etc/profile.d/alias.sh:

alias lf="less +F --follow-name"

Guárdelo y consíguelo para usarlo ahora. . /etc/profile.d/alias.sh

WesternGun
fuente