Як зробити "хвіст -f" файлів, повернутих у журнал?


106

У тривалій системі у мене зазвичай є термінал

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

або щось подібне відкрите.

Але час від часу мені доводиться перезавантажувати таку команду, оскільки нових повідомлень більше не відображається.

Я припускаю, що це відбувається тому, що завдання обертання журналу, яке замінило файл журналу, tail -fбуло "переглядом".

Як я можу уникнути проблем із перезавантаженням?

Чи можу я викликати tailтаке, щоб він помітив процес обертання і чинив правильно?

(Я помічаю цю проблему в системі Ubuntu 11.04, яка використовується rsyslogdза замовчуванням.)


Відповіді:


162

-FЗамість цього скористайтеся опцією:

tail -F /var/log/kern.log

Цей -Fпараметр повідомляє tailвідстежувати зміни у файлі за назвою файла, а не використовувати номер inode, який змінюється під час обертання. Він також намагатиметься відкрити файл, якщо його немає.


7
Дивовижний, так, я. (тільки для запису, це варіант хвоста GNU - де, звичайно, хвіст GNU у Ubuntu).
maxschlepzig

Ви маєте рацію: - / Я не помітив, що Ubuntu у вашому питанні є лише прикладом.
andcoz

зовсім не проблема - я просто коментував повноту (іноді просто хочеться подивитися, що таке POSIX, а що ні). Питання було справді багато про Ubuntu.
maxschlepzig

1
Є tail -F /var/log/kern.logеквівалент tail -f --follow=name --retry /var/log/kern.log?
Basj

1
@Basj - згідно man7.org/linux/man-pages/man1/tail.1.html це еквівалентно
andrej
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.