Como acompanhar a atividade de um arquivo específico [fechado]

1

Atualmente, o MAAS está implantado em um dos servidores. Tudo funciona (na maioria das vezes). Agora eu adicionei algumas linhas no arquivo WOL para o MAAS (/etc/maas/templates/power/ether_wake.template). Eu queria adicionar algumas funcionalidades ao arquivo.

Primeiro fiz um script bash para saber se tudo funcionava como deveria e depois de algumas correções de bugs. Depois disso, adicionei-o ao arquivo WOL. A partir daí, não funcionou mais. Bem, eu não sou novo para bash script ou qualquer coisa, mas não sei como depurar. Quando eu olho para os logs de erro, não consigo ver nada relacionado a esse arquivo que me dê algum tipo de dica se der errado. Portanto, estou interessado em saber se existe algum tipo de ferramenta CLI que possa acompanhar a saída desse arquivo específico durante algum período de tempo? Isso é possível e, em geral, estou lidando com esse problema da maneira correta?

    
por user3892683 15.05.2016 / 10:41

1 resposta

2

Uma "ferramenta CLI que pode seguir a saída desse arquivo específico por algum período de tempo" seria tail --follow=name --retry filename . Ele imprimirá as linhas do arquivo à medida que forem adicionadas e lerá a partir do início do arquivo se ele for removido e recriado, mas, infelizmente, ele poderá perder linhas se o arquivo ficar truncado . Teste 1:

Terminal 1 (observe como ele não imprime bar ):

$ tail --follow=name --retry test.log
tail: cannot open 'test.log' for reading: No such file or directory
tail: 'test.log' has appeared;  following new file
foo
tail: 'test.log' has become inaccessible: No such file or directory
tail: 'test.log' has appeared;  following new file
baz

Terminal 2:

$ echo foo > test.log
$ echo bar > test.log
$ rm test.log
$ echo baz > test.log

Teste 2, terminal 1:

$ rm test.log
$ tail --follow=name --retry test.log
tail: cannot open 'test.log' for reading: No such file or directory
tail: 'test.log' has appeared;  following new file
1
2
tail: test.log: file truncated
3
4

Terminal 2:

$ echo 1 > test.log
$ echo 2 >> test.log
$ echo 3 > test.log
$ echo 4 >> test.log

Se você está tentando seguir a saída de um comando , é necessário conectar a saída padrão (e possivelmente o erro padrão) desse comando a algo - um terminal (simplesmente execute o comando), um arquivo ( command > my.log 2>&1 ) ou outro comando ( command 2>&1 | tail -f ).

    
por 15.05.2016 / 11:20