Exibindo um arquivo de log de rolagem

27

Por linha de comando, eu tenho um arquivo de log que gostaria de acompanhar.

O que eu quero é ter, basicamente, um tail que atualiza quando o log é atualizado fazendo o texto rolar para cima conforme novas linhas são adicionadas ao arquivo de log.

Existe alguma coisa lá fora que faz isso sem ter que escrever algum código?

    
por WernerCD 13.09.2011 / 22:49

5 respostas

34

tail tem a opção -f :

Da página man :

  

-f, --follow [= {nome | descritor}]                 saída de dados anexados à medida que o arquivo cresce; -f, - seguir,   e --follow = descritor são equivalentes

Assim, se você digitar:

tail -f [path_and_name_of_logfile] - você verá a saída no terminal à medida que o próprio arquivo de registro é anexado.

N.B. [path_and_name_of_logfile] é o parâmetro, portanto, para dar um exemplo:

tail -f /var/log/messages

Se você combinar com a opção -n [number_of_lines] , poderá iniciar a saída do último [number_of_lines] no arquivo - por exemplo

tail -n 10 -f /var/log/Xorg.0.log

Alguns programas alteram periodicamente seu arquivo de registro, movendo o antigo para um novo nome (por exemplo, log.0) e iniciando novamente.

N.B. logrotate faz isso para logar arquivos para outros programas que não fazem isso sozinhos.

tail -f continuará a seguir o arquivo antigo após ser renomeado.

tail -F seguirá o arquivo pelo nome, portanto, alternará para seguir o novo arquivo.

    
por fossfreedom 13.09.2011 / 23:00
17

Enquanto tail é certamente a maneira usual de fazer isso, deve-se notar que less tem o mesmo recurso e algumas vezes é mais útil.

Se você abriu um arquivo com less , você pode pressionar Shift + F para que ele siga o arquivo (ex: ele mostrará novas linhas, assim como tail -f faz). Você pode sair deste modo com Ctrl + C

Você também pode iniciar less com a opção +F e, nesse caso, será iniciado nesse modo. Em geral, + pode ser usado para fornecer "comandos de teclado" para less , que será executado na inicialização.

Usar less para isso tem a vantagem de poder pesquisar facilmente o arquivo ou visualizar outras áreas, se necessário. Eu fiz freqüentemente isso com arquivos de log, por exemplo.

    
por Joachim Sauer 14.09.2011 / 07:51
6

tail -f something.log

faça o que quiser?

    
por Florian Diesch 13.09.2011 / 23:00
4

tail tem duas implementações para seguir e gerar dados que são anexados a um arquivo

  • siga o descritor de arquivo
  • siga um arquivo com um determinado nome

Com o parâmetro -f , --follow e --follow=descriptor , tail segue o descritor de arquivo. Esse método permite que o arquivo seja seguido através de uma renomeação, mas o rastreamento pára quando o arquivo é girado (um novo arquivo é criado com um descritor de arquivo diferente).

Ao seguir arquivos que são girados, use o parâmetro --follow=name ou -F , que é igual a --follow=name --retry . Dessa forma, tail reabrirá periodicamente o arquivo para superar a possível rotação.

    
por Jawa 14.09.2011 / 01:56
1

Acho que o ccze é a ferramenta certa para você.

Faz a mesma coisa de colorir. Você pode assistir a rolagem de log para baixo, mas é mais fácil de ler, porque as linhas são impressas com cores (erros em vermelho e assim por diante). Você pode experimentá-lo rapidamente com algo parecido com isto:

tail -f /var/log/syslog | ccze
    
por Gelma 28.09.2011 / 17:59