"Инструмент командной строки, который может отслеживать результаты этого конкретный файл в течение некоторого периода времени "будет tail --follow = name --retry filename
. Он будет печатать строки файла по мере их добавления и будет читать с начала файла, если он будет удален и воссоздан заново, но, к сожалению, он может пропустить строки, если файл будет усечен . Тест 1:
Терминал 1 (обратите внимание, как он не печатает 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
Терминал 2:
$ echo foo > test.log
$ echo bar > test.log
$ rm test.log
$ echo baz > test.log
Тест 2, терминал 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
Терминал 2:
$ echo 1 > test.log
$ echo 2 >> test.log
$ echo 3 > test.log
$ echo 4 >> test.log
Если вы пытаетесь следить за выводом команды , вам необходимо подключить стандартный вывод (и, возможно, стандартную ошибку) этой команды к чему-то - терминалу (просто запустите команда), файл ( команда> my.log 2> & 1
) или другая команда ( команда 2> & 1 | tail -f
).