引导周期切分
分析日志前先按引导周期切开,才能把「重启前发生了什么」和「重启后发生了什么」分开看。systemd 环境下 journalctl --list-boots 列出每次引导的序号与起止时间,再用 -b 加序号只看某一次引导的日志。
基本信息
| 列表命令 | journalctl --list-boots |
|---|---|
| 取样命令 | journalctl -b <序号>,其中 -1 表示上一次引导 |
| 时间格式 | -o short-iso 输出带时区偏移的 ISO 时间 |
| 持久化条件 | 只有启用持久化存储才保留历史引导日志 |
| 相关目录 | /var/log/journal 为持久化,/run/log/journal 为易失 |
| 校验价值 | 重启时刻本身就是一个可靠的时间锚点 |
典型使用场景
- 把重启前后的事件分开统计,避免混为一谈
- 判断某次异常是否发生在更早的一次引导中
- 用重启时刻校验两侧时间来源是否一致
- 分析开机自启项与服务在引导阶段的加载情况
- 输出跨引导时间线时标注周期边界
最小示例
最小示例
journalctl --list-boots | tail -5 # 最近的引导周期
journalctl -b -1 -o short-iso --no-pager | head -20 # 上一次引导的开头
journalctl -b 0 -o short-iso --no-pager | tail -20 # 本次引导的结尾
journalctl -b -1 -u sshd --no-pager | tail -20 # 只看某个单元
uptime -s # 本次引导的起始时刻
grep 'Start-Date' /var/log/apt/history.log | tail -3 # 与包管理记录交叉核对项目与说明
| 项目 | 含义 | 说明 |
|---|---|---|
| 引导序号 | 0 为本次,-1 为上一次 | 负数表示历史引导 |
| 起止时间 | 该次引导的边界 | 用于切分并校验时间线 |
| -b 参数 | 选择引导周期 | 可与 --since 组合进一步收窄 |
| -o short-iso | 时间输出格式 | 带时区偏移,便于跨来源对齐 |
| 持久性 | 日志是否跨重启保留 | 易失存储下历史引导不可查 |
未启用持久化日志时,历史引导记录只存在于内存文件系统,重启即消失;排查前先确认 /var/log/journal 目录是否存在。
重启时刻是最有价值的时间锚点之一,可以用它校验文件系统 crtime 与日志时间两条来源是否一致。
使用 vacuum 或清理参数缩减日志体积会永久删除历史引导记录,取证阶段不要执行任何清理操作。