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

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

我正在寻找一种方法,简单地从 Debian 中的 systemctl 服务打印最后 X 行。我想将此代码安装到脚本中,该脚本使用打印的最新日志条目。我找到了帖子,但我无法根据我的目的修改它。

目前我正在使用这段代码,它只是为我提供了日志文件的一小段:

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

要给出结果的示例,只需为任何服务输入上面的命令并滚动直到日志末尾。然后从底部开始复制最后 300 行。

我的想法是使用egrep ex。egrep -m 700 .但从现在起我就没有运气了。

答案1

journalctl --unit=my.service -n 100 --no-pager

答案2

如果你想看到最后n行数查看打印到日志中的新消息,请尝试以下操作:

journalctl -u <service name> -n <number of lines> -f

其中-n表示您希望从日志尾部看到的行数,并-f指定您希望跟踪日志的更改。

答案3

只是:

journalctl -u SERVICE_NAME -e

参数-e代表:

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

答案4

因为已经提供了 tail 命令解决方案。我尝试使用 sed 命令,它工作得很好

下面的命令将显示最后 300 行

journalctl --unit=my.service | sed -e :a -e '$q;N;301,$D;ba' 

相关内容