判断服务器是否异常断电最实用的第一步是执行last -x命令,通过检查shutdown记录缺失、连续reboot、crash关键词或runlevel突变(如to lvl 0/6无对应shutdown)等特征来识别。

直接用 last -x 查关机和重启事件,是判断服务器是否遭遇异常断电最实用的第一步。它不依赖日志服务是否开启,也不需要 root 权限,数据来自系统级的 /var/log/wtmp,稳定可靠。
看有没有“shutdown”记录
异常断电最典型的特征就是——没有 shutdown 条目。
- 正常关机后重启:你会看到类似
shutdown system down Mon Jul 28 23:45 - 23:46 (00:01)的行,后面紧跟着一次reboot system boot - 异常断电后重启:
shutdown行完全缺失,或者只看到连续两个reboot,中间没有关机动作,时间上也出现明显断裂(比如上次 reboot 是 22:00,下次直接跳到次日 06:00,中间无任何系统事件)
重点盯住“crash”和“runlevel”变化
last -x 输出中若出现以下关键词,基本可确认非正常掉电:
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
-
crash:例如runlevel (to lvl 6) crash Mon Jul 28 22:10 - 22:11 (00:01),说明内核崩溃或电源中断导致强制重启 -
runlevel (to lvl 0)或(to lvl 6)但无对应 shutdown:系统试图关机(lvl 0)或重启(lvl 6),却没完成就断电了 -
system boot时间戳紧挨着前一条 reboot,且间隔极短(如 00:00 秒),往往意味着未执行关机流程就硬启动
配合时间范围缩小排查
机房批量检查时,别翻完整日志。用参数快速聚焦可疑时段:
-
last -x -s "2026-07-28":查昨天全天的关机/重启事件 -
last -x -n 20:只看最近 20 条系统事件,一眼识别断层 -
last -x | grep -E "(shutdown|reboot|crash)" | head -15:过滤关键行为,按时间倒序看最新几条
注意 wtmp 文件的时效性
last -x 的数据来源是 /var/log/wtmp,这个文件不会自动轮转,但可能被 logrotate 清理或手动清空:
- 如果
last -x输出为空或只有最近一两天记录,先确认:ls -lh /var/log/wtmp*,看是否有归档(如wtmp.1) - 有归档时可用:
last -f /var/log/wtmp.1 -x | head -10继续追溯 - 若 wtmp 被清空过,该方法失效,需转向
journalctl -b -1或dmesg辅助验证

















