【问题标题】:How to get only new lines from linux log file?如何从 linux 日志文件中只获取新行?
【发布时间】:2019-03-15 13:56:31
【问题描述】:

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

我也对其他方法感兴趣。

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

感谢您的帮助。

【问题讨论】:

标签: python linux python-3.x unix logging


【解决方案1】:

如果您运行的平台使用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/

【讨论】:

    【解决方案2】:

    怎么样:

       $ tail -f /var/log/long_file.log 
    

    【讨论】:

      猜你喜欢
      • 2011-05-18
      • 1970-01-01
      • 2022-08-02
      • 1970-01-01
      • 2016-12-21
      • 2011-02-19
      • 1970-01-01
      • 1970-01-01
      • 2011-10-05
      相关资源
      最近更新 更多