GNU/Linux >> Znalost Linux >  >> Ubuntu

Nebude `tail -f` sledovat Syslog, když běží živě?

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


Ubuntu
  1. Jak používat příkaz tail v Ubuntu Linux

  2. Automatické potvrzení při spouštění skriptů Bash?

  3. Nechává Google Chrome po zavření procesy aktivní?

  1. Proč kurzor při psaní přeskakuje?

  2. Když spustím počítač, zobrazí se pouze terminál?

  3. Chyby při spouštění aktualizace Apt-get?

  1. Přetažení okna se zpomaluje (okna nesledují myš, když se pohybují plynule)?

  2. W:Problém s odpojováním seznamů souborů – Vyčistit (21:Je adresář) Chyba při spouštění ‚sudo Apt-get Update‘?

  3. Skript Nohup pro Python nefunguje, když běží na pozadí s &