journalctl可通过时间范围、错误级别和服务名精准筛选报错日志:①用--since/--until查绝对时间窗口;②用-b查本次启动;③用-u指定服务;④配合-p设定优先级、--no-pager导出,提升排查效率。

直接用 journalctl 查看特定时间段内的报错,关键在于时间范围 + 错误级别 + 结构化筛选,而不是通读全部日志。下面几种方式覆盖常见排查场景,操作简单、结果精准。
按绝对时间窗口查错误日志
适合已知故障发生的具体起止时间(比如上午10:15到10:22)。
- 查指定时间段内所有 error 及以上级别日志:
sudo journalctl --since "2026-07-07 10:15:00" --until "2026-07-07 10:22:00" -p err
- 若时间记不精确,可用相对表达(如“30分钟前到现在”):
sudo journalctl --since "30 min ago" -p err
⚠️ 注意:
--since today默认从当日 00:00:00 开始,可能漏掉凌晨前的报错;显式写完整时间戳更可靠。
按本次启动+错误级别快速汇总
这是最常用、最高效的起点,尤其适合刚重启后出现异常的情况。
- 查本次启动中所有 error 级别及以上日志(含 err/crit/alert/emerg):
sudo journalctl -b -p err
- 连 warning 一起看(有些配置问题只标为 warn,但实际导致功能失效):
sudo journalctl -b -p warn..err
- 加
--no-pager避免分页干扰,方便复制或管道处理:sudo journalctl -b -p err --no-pager
按服务+时间段+错误级别交叉定位
当怀疑某个服务在某段时间出错时,组合过滤能直接命中根源。
- 查 nginx 在过去一小时内发生的错误:
sudo journalctl -u nginx.service --since "1 hour ago" -p err
- 查 sshd 服务在今天凌晨以来的 warn 和 err 日志:
sudo journalctl -u sshd.service --since today -p warn..err
✅ 提示:
-u后必须带.service后缀(如nginx.service),否则部分系统可能匹配失败。
导出错误汇总供离线分析
把关键报错存成文件,便于截图、发给同事或后续比对。
- 把最近两小时所有 error 日志导出到家目录:
sudo journalctl --since "2 hours ago" -p err --no-pager > ~/errors_$(date +%H%M).log
- 若需高亮关键词(如 fail、denied、timeout),可加 grep:
sudo journalctl -b -p err --no-pager | grep -i "fail\|denied\|timeout" > ~/error_summary.log
不复杂但容易忽略










