Как получить только новые строки из файла журнала Linux? - PullRequest
0 голосов
/ 10 октября 2018

У меня было две идеи.Сначала я подумал, что прочитал файл, удалил его, и логирование в конечном итоге воссоздает его (я был не прав).Для второй попытки я подумал, что сделаю копию файла и сравню копию и оригинал через некоторое время.Как вы думаете?Является ли второй метод хорошим выбором?Если это так, что будет хорошим способом сравнить файлы эффективно?IMO, это было бы очень неэффективно, потому что мне приходилось дважды читать большой файл журнала и сравнивать его построчно ...

Меня также интересуют другие методы.

Что-то с опросомне быть идеальным, это должна быть работа, которую я вызываю с помощью crontab.

Спасибо за вашу помощь.

Ответы [ 2 ]

0 голосов
/ 11 октября 2018

А как же:

   $ tail -f /var/log/long_file.log 
0 голосов
/ 10 октября 2018

Если платформа, на которой вы работаете, использует systemd, вы можете использовать команду journalctl.

Команда journalctl имеет очень мощную опцию --since

Вы можете использовать его для получения журналов по прошествии определенного времени:

journalctl --since "2018-10-08 13:00:00"

Просмотр журналов за промежуток времени

journalctl --since "2018-10-08 13:00:00" --until "2018-10-08 13:30:00"

Или N раз назад

journalctl --since "10min ago"

Для просмотрав определенных журналах приложений используется опция -u

journalctl -u tomcat.service --since "1 hr ago"

Ссылки:

https://www.digitalocean.com/community/tutorials/how-to-use-journalctl-to-view-and-manipulate-systemd-logs

https://www.loggly.com/ultimate-guide/using-journalctl/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...