Chci monitorovat /var/log/syslog
pro jakékoli změny v reálném čase (nebo během několika sekund), ale tail -f
nebude aktualizován žádnými novými změnami.
Nyní běžím na Ubuntu Linux Mint 17 XFCE live, ale nefungovalo to ani na živých iso Ubuntu, Xubuntu nebo Linux Mint Mate.
Zkoušel jsem tyto:
$ 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
Ale nejprve vytiskne pouze několik posledních řádků souboru, a když se soubor zvětší, žádné aktualizace (když například pokus o připojení prázdného souboru poskytne asi 15 řádků chyb).
Ve skutečnosti se zdá, že ani pokus o sledování testovacího souboru v mé domovské složce nefunguje, když spustím příkaz tail -f testfile
a pak (v jiném terminálu):$ echo "new stuff" >> testfile
$ echo "new stuff2" >> testfile
$ echo "3" >> testfile
nevede k žádným aktualizacím tail
buď…
Ale když vložím testfile
v /tmp
(připevněno na tmpfs), pak to dělá sledovat změny v souboru.
Proč ocas nebude následovat?
Je na živém běhu něco divného nebo překryvné vrstvy, které ochromují tail -f
? A nějaké návrhy, jak sledovat log? (xwatch
funguje dobře, něco lepšího nebo v terminálu?)
Zkusil jsem spustit strace tail -f -s 1 testfile
a zde je posledních pár řádků výstupu, za ním write(1,
). je stávajících pár řádků 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,
Přijatá odpověď:
tail
používá inotify
který nefunguje s overlayfs
Podívejte se na toto hlášení o chybě a tuto diskuzi. @Xen2050 poukázal na ---disable-inotify
přepněte na tail
Viz toto zástupné řešení
Můžete použít apt-src
k instalaci coreutils
zdroj a znovu zkompilujte tail
s -UHAVE_INOTIFY