Jak zrobić „tail -f” logów obróconych plików?


106

W długo działającym systemie zwykle mam terminal

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

lub coś takiego otwarte.

Ale od czasu do czasu muszę ponownie uruchomić takie polecenie, ponieważ nie są już wyświetlane żadne nowe wiadomości.

Zakładam, że dzieje się tak z powodu zadania rotacji dziennika, które zastąpiło plik dziennika, tail -fktóry „oglądał”.

Jak mogę uniknąć problemów z ponownym uruchomieniem?

Czy mogę przywoływać w tailtaki sposób, aby dostrzegał proces rotacji i czy działał prawidłowo?

(Zauważam ten problem w systemie Ubuntu 11.04, który używa rsyslogddomyślnie.)


Odpowiedzi:


162

-FZamiast tego użyj opcji:

tail -F /var/log/kern.log

-FOpcja mówi taildo śledzenia zmian w pliku nazwa_pliku, zamiast przy użyciu numeru węzła, który zmienia się w trakcie obracania. Będzie również próbował otworzyć plik, jeśli go nie ma.


7
Wspaniale, tak, jestem. (tylko dla przypomnienia, jest to opcja ogona GNU - gdzie ogon GNU jest oczywiście domyślny w Ubuntu).
maxschlepzig

Masz rację: - / Nie zauważyłem, że Ubuntu w twoim pytaniu było tylko przykładem.
andcoz

wcale nie jest problemem - właśnie skomentowałem dla kompletności (czasami chcę tylko sprawdzić, co jest POSIX, a co nie). Pytanie dotyczyło właściwie Ubuntu.
maxschlepzig

1
Jest tail -F /var/log/kern.logrównoważne tail -f --follow=name --retry /var/log/kern.log?
Basj

1
@Basj - według man7.org/linux/man-pages/man1/tail.1.html to odpowiednik
andrej
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.