Como fazer um 'tail -f' de arquivos de log rotacionados?

89

Em um sistema de longa duração, eu geralmente tenho um terminal com

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

ou algo assim aberto.

Mas de vez em quando eu tenho que reiniciar tal comando porque nenhuma nova mensagem é exibida mais.

Suponho que isso se deva ao fato de a tarefa de rotação de log ter substituído o arquivo de log tail -f como 'assistindo'.

Como posso evitar esses problemas de reinicialização?

Posso invocar tail de forma que ele perceba o processo de rotação e faça a coisa certa?

(Eu observei este problema em um sistema Ubuntu 11.04 que usa rsyslogd por padrão).

    
por maxschlepzig 16.10.2011 / 17:41

1 resposta

136

Use a opção -F :

tail -F /var/log/kern.log

A opção -F informa tail para rastrear as alterações no arquivo por nome de arquivo, em vez de usar o número do inode que é alterado durante a rotação. Ele também continuará tentando abrir o arquivo se não estiver presente.

    
por 16.10.2011 / 17:43