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