我正在寻找一种方法,只需从 Debian 中的 systemctl 服务打印最后 X 行。我想将此代码安装到脚本中,该脚本使用打印的和最新的日志条目。我找到了这篇文章,但我无法出于我的目的对其进行修改。
目前我正在使用这段代码,它只是给了我一小段日志文件:
journalctl --unit=my.service --since "1 hour ago" -p err
要举例说明结果应该是什么样子,只需为任何服务键入上面的命令并滚动到日志末尾。然后从底部开始复制最后 300 行。
我的想法是使用 egrep ex。egrep -m 700 .
但从现在起我就没有运气了。
如果您想查看最后n行并在新消息打印到日志时查看它们,请尝试以下操作:
where
-n
表示您希望从日志尾部看到的行数,并-f
指定您希望在日志更改时关注它。只是:
参数
-e
代表:您可以将输出通过管道传输到
tail
:该
tail
命令将 stdin 中收到的最后一行(默认为 10 行)打印到 stdout。编辑:如评论中所述,这对于非常大的日志效率低下。
由于tail命令解决方案已经提供。我尝试使用sed命令并且它工作正常
下面的命令将显示最后 300 行