用 journalctl 查系统日志:按服务、时间和优先级过滤
journalctl 是 systemd 自带的日志查看工具,系统服务、内核和启动过程的日志都集中存在 journal 里,不用再去 /var/log 下面一个个翻文件。最基础的用法是直接运行 journalctl,从较早的日志开始分页显示,按 q 退出;加 -f 是实时跟踪新日志,相当于 tail -f。
实际排查最常用的是按服务过滤:journalctl -u nginx 只看某个服务的日志,服务名就是 systemd 的 unit 名,不确定时先用 systemctl list-units 确认。想把结果直接打到终端方便复制或重定向,加 --no-pager。
按时间过滤能把范围缩到出事的那一段:--since "2026-11-05 09:00" 看某个时间点之后,--until 指定结束时间,两者可以组合;也支持相对写法,如 --since "1 hour ago" 或 --since today。线上排障先用时间窗把日志量降下来,比全量翻要快得多。
按优先级过滤适合快速找错误:-p err 只看 error 及以上级别,级别从高到低依次是 emerg、alert、crit、err、warning、notice、info、debug。组合起来就是 journalctl -u 服务名 -p err --since today,一条命令定位今天的报错。
还有两个高频场景:看本次启动以来的日志用 -b,上一次启动用 -b -1,排查重启相关的问题很有用;只看内核日志用 -k。另外 journal 占用的磁盘空间可以在 /etc/systemd/journald.conf 里用 SystemMaxUse 限制,避免老机器被日志撑满。
小结:-u 按服务、--since 与 --until 按时间、-p 按级别、-f 实时跟踪,这四个维度组合起来,绝大多数日常排障都够用了。
- 点赞
- 收藏
- 关注作者
评论(0)