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
).