Ich möchte /var/log/syslog
überwachen für alle Änderungen in Echtzeit (oder innerhalb weniger Sekunden), aber tail -f
wird nicht mit neuen Änderungen aktualisiert.
Ich verwende jetzt Ubuntu-basiertes Linux Mint 17 XFCE live, aber das hat auch nicht mit Live-ISOs von Ubuntu, Xubuntu oder Linux Mint Mate funktioniert.
Ich habe diese ausprobiert:
$ 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
Aber es gibt anfangs nur die letzten paar Zeilen der Datei aus, dann keine Aktualisierungen, wenn die Datei wächst (wenn zum Beispiel versucht wird, eine leere Datei zu mounten, gibt es ungefähr 15 Zeilen mit Fehlern).
Tatsächlich scheint sogar der Versuch, einer Testdatei in meinem Home-Ordner zu folgen, nicht zu funktionieren, indem tail -f testfile
ausgeführt wird und dann (in einem anderen Terminal):$ echo "new stuff" >> testfile
$ echo "new stuff2" >> testfile
$ echo "3" >> testfile
führt zu keinen Aktualisierungen von tail
entweder…
Aber wenn ich testfile
einfüge in /tmp
(montiert auf einem tmpfs) dann macht es Folgen Sie den Änderungen der Datei.
Warum folgt der Schwanz nicht?
Gibt es etwas Seltsames beim Live-Laufen oder Overlayfs, die tail -f
lahmlegen ? Und irgendwelche Vorschläge, wie man dem Protokoll folgen kann? (xwatch
funktioniert ok, irgendetwas besser oder im Terminal?)
Ich habe versucht, strace tail -f -s 1 testfile
auszuführen und hier sind die letzten paar Zeilen der Ausgabe, danach write(1,
sind die vorhandenen paar Zeilen von 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,
Akzeptierte Antwort:
tail
verwendet inotify
was mit overlayfs
nicht funktioniert Siehe diesen Fehlerbericht und diese Diskussion. @Xen2050 wies auf ---disable-inotify
hin wechsle zu tail
Siehe diese Problemumgehung
Sie könnten apt-src
verwenden um die coreutils
zu installieren source und tail
neu kompilieren mit -UHAVE_INOTIFY