Quiero monitorear /var/log/syslog
para cualquier cambio en tiempo real (o dentro de unos pocos segundos de tiempo), pero tail -f
no se actualizará con ningún cambio nuevo.
Estoy ejecutando Linux Mint 17 XFCE basado en Ubuntu en vivo ahora, pero esto tampoco ha funcionado en versiones iso en vivo de Ubuntu, Xubuntu o Linux Mint Mate.
He probado estos:
$ tail -f /var/log/syslog
$ tail -f --retry -s 1 /var/log/syslog
$ tail --follow=name /var/log/syslog
$ tail --follow=name --retry /var/log/syslog
$ tail --follow=name --retry -s 1 /var/log/syslog
Pero inicialmente solo muestra las últimas líneas del archivo, luego no se actualiza cuando el archivo crece (cuando, por ejemplo, al intentar montar un archivo vacío se producen alrededor de 15 líneas de errores).
En realidad, incluso tratar de seguir un archivo de prueba en mi carpeta de inicio no parece funcionar, ejecutando tail -f testfile
y luego (en otra terminal):$ echo "new stuff" >> testfile
$ echo "new stuff2" >> testfile
$ echo "3" >> testfile
no da como resultado ninguna actualización de tail
tampoco…
Pero si pongo testfile
en /tmp
(montado en un tmpfs) entonces lo hace siga los cambios del archivo.
¿Por qué no sigue la cola?
¿Hay algo extraño en la ejecución en vivo o superposiciones que paralizan tail -f
? ? ¿Y alguna sugerencia sobre cómo seguir el registro? (xwatch
funciona bien, ¿algo mejor o en terminal?)
Intenté ejecutar strace tail -f -s 1 testfile
y aquí están las últimas dos líneas de salida, después write(1,
son las dos líneas existentes de testfile
:
write(1, "new1\n", 5new1
) = 5
fstat64(3, {st_mode=S_IFREG|0644, st_size=22, ...}) = 0
fstatfs64(3, 84, {f_type=0x1021994, f_bsize=4096, f_blocks=968776, f_bfree=461437, f_bavail=461437, f_files=203469, f_ffree=190635, f_fsid={0, 0}, f_namelen=255, f_frsize=4096, f_flags=1056}) = 0
inotify_init() = 4
inotify_add_watch(4, "testfile", IN_MODIFY|IN_ATTRIB|IN_DELETE_SELF|IN_MOVE_SELF) = 1
fstat64(3, {st_mode=S_IFREG|0644, st_size=22, ...}) = 0
read(4,
Respuesta aceptada:
tail
usa inotify
que no funciona con overlayfs
Vea este informe de error y esta discusión. @ Xen2050 señaló el ---disable-inotify
cambiar a tail
Vea esta solución
Podrías usar apt-src
para instalar coreutils
source y recompilar tail
con -UHAVE_INOTIFY