Come fare una `coda -f` di file ruotati di registro?


106

Su un sistema a lunga esecuzione di solito ho un terminale con

$ tail -f /var/log/kern.log

o qualcosa del genere aperto.

Ma di tanto in tanto devo riavviare tale comando perché non vengono più visualizzati nuovi messaggi.

Presumo che ciò sia dovuto al fatto che il processo di rotazione del registro che ha sostituito il file di registro tail -fera "in fase di visualizzazione".

Come posso evitare questi problemi di riavvio?

Posso invocare in tailmodo tale da notare il processo di rotazione e fare la cosa giusta?

(Ho notato questo problema su un sistema Ubuntu 11.04 che utilizza rsyslogdper impostazione predefinita.)


Risposte:


162

Utilizzare -Finvece l' opzione:

tail -F /var/log/kern.log

L' -Fopzione indica taildi tenere traccia delle modifiche al file in base al nome del file, anziché utilizzare il numero di inode che cambia durante la rotazione. Continuerà anche a cercare di aprire il file se non è presente.


7
Fantastico, sì, lo sono. (solo per la cronaca, questa è un'opzione GNU tail - dove GNU tail è ovviamente il default su Ubuntu).
maxschlepzig,

Hai ragione: - / Non ho notato che Ubuntu nella tua domanda era solo un esempio.
andcoz,

non è affatto un problema - ho solo commentato per completezza (a volte voglio solo guardare cosa è POSIX e cosa non lo è). La domanda riguardava davvero Ubuntu.
maxschlepzig,

1
È tail -F /var/log/kern.logequivalente a tail -f --follow=name --retry /var/log/kern.log?
Basj,

1
@Basj - secondo man7.org/linux/man-pages/man1/tail.1.html è equivalente
andrej
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.