use*_*334 65 systemd journalctl systemctl
我正在寻找一种方法,可以简单地从 Debian 中的 systemctl 服务打印最后 X 行。我想将此代码安装到脚本中,该脚本使用打印的和最新的日志条目。我找到了这篇文章,但我无法根据我的目的修改它。
目前我正在使用这段代码,它只是给了我一小段日志文件:
journalctl --unit=my.service --since "1 hour ago" -p err
Run Code Online (Sandbox Code Playgroud)
为了举例说明结果应该是什么样子,只需为任何服务输入上面的命令并滚动到日志末尾。然后从底部开始复制最后 300 行。
我的想法是使用 egrep ex。egrep -m 700 .但从现在起我就没有运气了。
sou*_*edi 125
journalctl --unit=my.service -n 100 --no-pager
Run Code Online (Sandbox Code Playgroud)
小智 19
如果您想查看最后n行并查看打印到日志中的新消息,请尝试以下操作:
journalctl -u <service name> -n <number of lines> -f
Run Code Online (Sandbox Code Playgroud)
where-n表示您希望从日志尾部看到的行数,并-f指定您希望在日志更改时跟踪日志。
dr_*_*dr_ 14
您可以将输出通过管道传输到tail:
journalctl --unit=my.service | tail -n 300
Run Code Online (Sandbox Code Playgroud)
这 tail命令将在 stdin 中接收到的最后一行(默认为 10 行)打印到 stdout。
编辑:如评论中所述,这对于非常大的日志来说效率低下。
小智 12
只是:
journalctl -u SERVICE_NAME -e
Run Code Online (Sandbox Code Playgroud)
参数-e代表:
-e --pagerend; 立即跳转到隐含寻呼工具内的日志末尾。这意味着 -n 1000 以保证寻呼机不会缓冲无限大小的日志。这可能会被带有其他数值的显式 -n 覆盖,而 -nall 将禁用此上限。
| 归档时间: |
|
| 查看次数: |
132982 次 |
| 最近记录: |