journalctl 日志查询:过滤、格式与故障诊断
journalctl 是 systemd 日志查看工具,提供强大过滤能力。
1. 基本查看
journalctl # 所有日志
journalctl -b # 本次启动日志
journalctl -k # 内核日志2. 过滤条件
# 按服务
journalctl -u nginx
# 按优先级(err, warning, info, debug)
journalctl -p err -u nginx
# 按时间
journalctl --since "2025-01-01 00:00:00" --until "2025-01-02 00:00:00"
# 按 GID/UID
journalctl _UID=10003. 输出格式
# 实时跟踪(-f)
journalctl -u nginx -f
# 详细模式(-o verbose)查看全部字段
journalctl -o verbose -u nginx
# 只输出消息(-o cat)
journalctl -o cat -u nginx4. 持久化存储
配置 /etc/systemd/journald.conf:
Storage=persistent然后重启 systemctl restart systemd-journald。
5. 维护与清理
# 查看占用空间
journalctl --disk-usage
# 清理到指定大小(保留 100MB)
journalctl --vacuum-size=100M
# 保留最近 2 天
journalctl --vacuum-time=2d6. 故障诊断技巧
- 结合
--since和-f实时观察。 - 用
grep二次过滤journalctl | grep ERROR。 - 导出日志
journalctl -b > boot.log便于离线分析。
