Python 如何仅从linux日志文件中获取新行?

Python 如何仅从linux日志文件中获取新行?,python,linux,python-3.x,unix,logging,Python,Linux,Python 3.x,Unix,Logging,我有两个想法。首先,我认为我读取了文件,删除了它,日志记录最终会重新创建它(我错了)。第二次尝试时,我想我会复制一份文件,并在一段时间后比较副本和原件。你怎么认为?第二种方法是好的选择吗?如果是这样的话,什么是有效比较文件的好方法?在我看来,这将是非常低效的,因为我必须读一个大日志文件两次,然后逐行比较 我也对其他方法感兴趣 带有轮询的东西并不理想,这应该是我用crontab调用的作业 谢谢您的帮助。如果您正在运行的平台使用systemd您可以使用journalctl命令 journalctl命

我有两个想法。首先,我认为我读取了文件,删除了它,日志记录最终会重新创建它(我错了)。第二次尝试时,我想我会复制一份文件,并在一段时间后比较副本和原件。你怎么认为?第二种方法是好的选择吗?如果是这样的话,什么是有效比较文件的好方法?在我看来,这将是非常低效的,因为我必须读一个大日志文件两次,然后逐行比较

我也对其他方法感兴趣

带有轮询的东西并不理想,这应该是我用crontab调用的作业


谢谢您的帮助。

如果您正在运行的平台使用
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"
参考文献:

关于:

   $ tail -f /var/log/long_file.log 
可能重复的、等。