Notes

journalctl:把上一次启动单独拿出来看

按启动批次与时间窗口筛日志,并区分没有记录和没有发生。

为《journalctl:把上一次启动单独拿出来看》确定性生成的文章图形
图形生成说明
函数家族
windowed-signal
简化公式
y(t)=w(t)·sin(ωt+φ), w(t)∈{0,1}
短哈希
799b179cb9e7
生成器版本
2

这是由文章身份与结构生成的装饰图形,不是数据可视化。

下载 SVG下载生成清单

机器重启后再查故障,容易把本次启动的信息当成重启前的现场。使用 systemd journal 的主机,可以先按启动批次分开看,不必从所有日志里猜时间。

先列出仍然保存的启动记录

journalctl --list-boots --no-pager
journalctl -b -1 -n 80 --no-pager

第二条取上一次有记录的启动批次,显示最后 80 条。第一条同时列出 boot ID 与记录时间范围;需要留下可复查的定位信息时,记下 boot ID,后续可用 journalctl -b BOOT_ID 查询。相对编号会随日志集合变化,不能当成永久编号。

再收窄到服务和时间

下面的服务名与时间只是示例,需要替换成现场值:

journalctl -b -1 -u example.service \
  --since '2026-09-09 20:00:00' \
  --until '2026-09-09 20:10:00' \
  -o short-iso-precise --no-pager

未写时区的时间按本机时区解释。筛选条件会叠加,窗口不对或服务名写错,都可能让输出为空。先看批次时间范围,再逐个加条件,比一次加满更容易发现是哪项筛掉了记录。

导出片段给别人看之前,还应检查账户、主机名与请求参数;系统日志不是默认可以公开的材料。

找不到上一批日志,不代表上次启动没有报错:记录可能没有持久化、已被轮转,或当前账户无权读取系统日志。必要时在获授权后用 sudo 查询。临时打开持久化也不能补回已经丢失的记录;这时不要为了“整理现场”执行 vacuum 清理。

依据:journalctl 官方手册