journalctl命令

journalctl命令是Systemd日志系统的一个命令,主要用途是用来查看通过Systemd日志系统记录的日志,在Systemd出现之前,Linux系统及各应用的日志都是分别管理的,Systemd取代了initd之后便开始统一管理了所有Unit的启动日志,可以只用一个journalctl命令,查看所有内核和应用的日志。

语法

journalctl [OPTIONS...] [MATCHES...]

参数

示例

显示本次启动以来的全部日志。

journalctl

显示内核日志。

journalctl -k

使用-n参数可以显示最后n行日志,如果不指定行数,默认显示10行。

journalctl -n 20

查看指定进程的日志。

journalctl _PID=1

显示最近30分钟的日志。

journalctl --since=-30m

显示2021年以来的日志。

journalctl --since="2021-01-01"

显示今天的日志。

journalctl --since=today

使用-f参数可以实现类型tail -f的功能,持续监控最新的日志。

journalctl -f

查看指定Unit的日志。

journalctl -u nginx.service

查看日志占用的磁盘空间。

journalctl --disk-usage

要求日志守护进程滚动日志文件,日志滚动可以确保所有活动的日志文件都被关闭、并被重命名以完成归档,同时新的空白日志文件将被创建,并成为新的活动日志文件。

journalctl --rotate

清理一个周前的日志。

journalctl --vacuum-time=1week

将磁盘占用减少到指定大小以下。

journalctl --vacuum-size=10M

参考

http://www.jinbuguo.com/systemd/journalctl.html#
https://www.commandlinux.com/man-page/man1/journalctl.1.html
https://blog.orchidflower.cn/2020/04/20/linux-command-introduction-04-journalctl/