【Linux】journalctl
1、简介
journalctl用于查询和操作systemd进程管理的日志。
Systemd是Linux发行版的初始化系统,负责启动系统后的所有服务,并监视它们在系统运行期间的状态。Journal是Systemd的一部分,主要负责收集和存储日志数据。
journalctl是Journal的主要接口,提供丰富的功能来检索和显示日志条目。它能从磁盘上的二进制文件或者其他传输目标(如syslog)获取日志。
2、基础使用
2.1 查看所有日志
分页输出:
journalctl
不分页输出:
journalctl --no-pager
2.2 按时间倒序查看所有日志
journalctl -r
2.3 查看最新的10条日志
journalctl -n 10
2.4 实时查看新添加的日志条目
journalctl -f
3、过滤日志条目
3.1 根据服务名称过滤
journalctl -u nginx
3.2 根据进程ID过滤
journalctl _PID=2001
3.3 根据优先级过滤(0-7,0表示最重要)
journalctl -p err -b
4、时间戳和日志轮转
日志轮转是一个过程,其中旧的日志条目被删除以释放空间给新的日志条目。默认情况下,Journal将根据配置在/var/log/journal中保存日志文件,并在磁盘空间不足时执行日志轮转。
时间戳允许你查找特定时间范围内的日志条目。例如:
journalctl --since="2021-07-01" --until="2021-07-31 03:00"
5、查看日志占用空间大小
journalctl --disk-usage
注意事项: journal日志不会将程序输出的空行显示,日志会被压缩得满满当当。journal日志不会自动持久化,重启系统后,历史日志将被清除。可参考journal日志持久化配置。