21 我正在寻找一种方法,可以简单地从Debian中的systemctl服务打印最后X行。我想将此代码安装到脚本中,该脚本使用打印的和最新的日志条目。我找到了这篇文章,但出于我的目的我无法对其进行修改。 当前,我正在使用此代码,这只是给我一小段日志文件: journalctl --unit=my.service --since "1 hour ago" -p err 要给出结果的外观示例,只需在上面的命令中键入任何服务,然后滚动到日志末尾即可。然后从底部开始复制最后300行。 我的想法是使用egrep ex。egrep -m 700 .但是从那以后我再也没有运气了 systemd journalctl systemctl — 用户名 source
7 只需将输出传递给tail: journalctl --unit=my.service | tail -n 300 该tail命令将在stdin中收到的最后几行(默认情况下为10)打印到stdout。 — 博士01 source 1 完全忘记了尾巴-好主意,非常感谢! — user3191334'2 5 对于大型原木,尾巴可能会非常缓慢。-n您想要的是journalctrl 的内置函数。例如journalctl -n 300 — Drakes
4 如果要查看最后n行并在将新消息打印到日志时查看它们,请尝试以下操作: journalctl -u <service name> -n <number of lines> -f 其中-n表示您希望从日志尾部看到的行数,并-f指定您希望在日志更改时关注它。 — 德里克·索克 source
4 只是: journalctl -u SERVICE_NAME -e 参数-e代表: -e --pagerend; 立即在隐式分页器工具内跳到日记的末尾。这意味着-n 1000,以确保分页器不会缓冲无限制大小的日志。可以使用带有其他数值的显式-n覆盖此参数,而-nall将禁用此上限。 — 丹尼尔·马克 source
1 由于提供了尾部命令解决方案aleady。我尝试使用sed commmand及其效果很好 下面的命令将显示最后300行 journalctl --unit=my.service | sed -e :a -e '$q;N;301,$D;ba' — Praveen Kumar BS source