首页/系统/信创系统运维速查/按启动会话回溯日志
服务与运维65 条

按启动会话回溯日志

每次开机是一个 boot 会话:-b 看本次、-b -1 看上次、--list-boots 列出全部会话;排查重启后故障消失类问题必备,前提是日志已持久化。

信创系统运维速查系统更新于 2026-10-13

按启动会话看日志

systemd 把每次内核启动记为一个 boot 会话:journalctl -b 看本次启动,-b -1 看上一次,--list-boots 列出全部会话编号。排查重启后故障自动消失这类问题,必须回到出问题的那个会话里找证据。前提是 journal 已持久化,否则重启后旧会话可能只剩会话元数据而看不到内容。

基本信息

本次启动journalctl -b
上次启动journalctl -b -1
会话列表journalctl --list-boots
指定会话journalctl -b <编号>,可为负号偏移
前提/var/log/journal 持久化已启用

典型使用场景

  • 服务器异常重启后自愈,回看上一个会话里的报错
  • 确认某个服务从第几次重启开始失败,定位变更时间点
  • 核对上次关机是否正常,有无内核崩溃或内存耗尽记录
  • 安全审计:按启动会话梳理登录与提权记录
  • 与内核日志、硬件报错对照,区分软件问题与硬件问题

用法

用法
journalctl --list-boots                      # 列出全部启动会话与时间区间
journalctl -b -1 -p err --no-pager | tail -50    # 上次启动的错误级日志
journalctl -b -1 -u nginx --no-pager | tail -100 # 上次启动里指定服务
journalctl -b -1 -k | grep -i error           # 上次启动的内核消息
journalctl -b -1 --since '2026-10-01' --until '2026-10-02' | tail -50
journalctl -b -1 -o short-precise | head -20  # 精确到微秒的时间戳

现象与处理

现象含义处理
--list-boots 只有一行未持久化,仅当前会话建 /var/log/journal 后重启 journald
-b -1 报找不到文件旧会话日志已被清理检查保留策略与容量限制
会话编号有断号可能存在异常断电或崩溃重点看对应会话的内核记录
会话时间即重启时间记录正常按时间区间定位更精确
要按会话查历史,在 /etc/systemd/journald.conf 设 Storage=persistent,或直接创建 /var/log/journal 目录,再重启 systemd-journald;RPM 系与 DEB 系机制相同。
journal 占用受 SystemMaxUse 限制,默认可能只有几百兆,日志量大的主机上历史会话容易被挤掉;重要节点提前调大限额或同时转发到集中日志服务器。
会话编号支持偏移写法,-b -2 表示倒数第二次启动;正数编号取自 --list-boots 的第一列,两种写法混用很容易看错会话。

易错点

  • 没启用持久化还反复试 -b -1:日志文件根本不存在,先确认 Storage 配置与目录是否存在
  • 把重启服务当成新的一次启动:boot 会话以内核启动为界,单独重启服务不会产生新会话
  • 只看本次启动就下结论:故障发生在重启前时,证据在上一个会话里
  • 时间区间筛选前不核对时区,跨时区运维容易看错时间窗
  • 不先按级别与时间缩小范围就直接全文过滤:日志量大时既慢又容易漏,先 -p err 再看具体服务

数据来源与参考

  • man 1 journalctl(--list-boots/-b)
  • 红帽系统管理指南(journal 会话)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌