1. 基本查看
journalctl
查看系统所有日志(从最早到最新)。
journalctl -e
直接跳到最新日志(end)。
journalctl -f
实时跟踪日志(类似 tail -f /var/log/messages
)。
2. 按时间范围
journalctl --since "2025-09-01 08:00:00"
journalctl --since "2 hours ago"
journalctl --since yesterday --until "2025-09-04 18:00"
3. 按服务或单元
journalctl -u sshd
journalctl -u docker.service --since today
-u
表示 systemd unit。
4. 按进程、用户、PID
journalctl _PID=1234
journalctl _UID=1000
journalctl _COMM=sshd
5. 按优先级过滤
日志级别:0=emerg
,1=alert
,2=crit
,3=err
,4=warning
,5=notice
,6=info
,7=debug
journalctl -p err # 只看错误及以上
journalctl -p warning -b # 本次启动的警告以上
6. 按启动次数
journalctl -b # 本次启动日志
journalctl -b -1 # 上一次启动日志
journalctl -b -2 --list-boots # 查看可用的启动记录
7. 输出格式
journalctl -o json-pretty
journalctl -o short-iso
journalctl -o cat # 只打印日志内容
8. 清理与持久化
-
默认
journald
只存储在内存中(重启丢失),要持久化需建目录:mkdir -p /var/log/journal systemctl restart systemd-journald
-
清理日志:
journalctl --vacuum-size=1G # 保留 1GB 日志
journalctl --vacuum-time=7d # 保留 7 天日志
journalctl --vacuum-files=5 # 保留最近 5 个日志文件