【Linux】如何从systemctl服务日志中查看最新的x行


我正在寻找一种方法,可以简单地从Debian中的systemctl服务打印最后X行。我想将此代码安装到脚本中,该脚本使用打印的和最新的日志条目。我找到了这篇文章,但出于我的目的我无法对其进行修改。

当前,我正在使用此代码,这只是给我一小段日志文件:

journalctl --unit=my.service --since "1 hour ago" -p err

要给出结果的外观示例,只需在上面的命令中键入任何服务,然后滚动到日志末尾即可。然后从底部开始复制最后300行。

我的想法是使用egrep ex。egrep -m 700 .但是从那以后我再也没有运气了

Answers:

只需将输出传递给tail

journalctl --unit=my.service | tail -n 300

tail命令将在stdin中收到的最后几行(默认情况下为10)打印到stdout。

只是:

journalctl -u SERVICE_NAME -e

参数-e代表:

  • e --pagerend; 立即在隐式分页器工具内跳到日记的末尾。这意味着-n 1000,以确保分页器不会缓冲无限制大小的日志。可以使用带有其他数值的显式-n覆盖此参数,而-nall将禁用此上限。