我正在寻找一种方法,简单地从 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'