在麒麟V10系统中,上一次关机时间需通过日志提取:首选last -x | grep "shutdown" | head -n 1从wtmp获取;若无记录,则用sudo journalctl -b -1 | grep -i "shutting down"或sudo grep -i "runlevel 0" /var/log/messages | tail -n 1。

在麒麟V10系统中准确获取上一次关机发生的具体时间点,需依赖系统日志中由 shutdown 或 reboot 指令触发并留存的记录,因为内核本身不主动持久化关机时刻,直接界面操作无法查得该信息,必须通过终端命令从日志源文件中提取。
用 last 命令从 wtmp 中提取最近 shutdown 条目
last 命令读取 /var/log/wtmp 文件,该文件由系统内核持续写入,每条 shutdown 记录都带完整时间戳,不受 journalctl 日志轮转影响,是首选方法。
打开终端(Ctrl+Alt+T)。
执行:last -x | grep "shutdown"。
若输出为空,说明 /var/log/wtmp 中无 shutdown 记录——这通常意味着系统曾异常断电或未执行标准关机流程,【此时该方法失效,必须切换至 journalctl 或 syslog 方案】。
执行:last -x | grep "shutdown" | head -n 1,直接获得最新一条关机记录,格式为 shutdown system down Thu Apr 30 23:45 - 00:12 (00:27),其中 Thu Apr 30 23:45 即为上一次关机时间。
用 journalctl 定位上一启动周期内的关机日志
此方法适用于 systemd 环境且已启用日志持久化的系统,能精准捕获 shutdown、poweroff、halt 等关键词触发的结构化日志,但前提是上一次关机时系统正常运行并完成日志落盘。
方法一:限定上一次启动周期
在终端中执行:sudo journalctl -b -1 | grep -i "shutting down"。
该命令只检索本次启动前的那个 boot 会话,避免混入当前运行周期的干扰日志。
方法二:全局搜索最后出现的关机消息
执行:sudo journalctl | grep -i "shutting down" | tail -n 1。
注意:若系统未配置 Storage=persistent,journalctl 默认只保留本次启动以来的日志,此命令将返回空结果。
检查 syslog 或 messages 中的 shutdown 文本记录
当 systemd-journald 持久日志被禁用,或 last 命令无输出时,rsyslog 服务写入的传统文本日志成为最后可用依据,尤其适用于服务器版麒麟系统。
第一步:确认日志文件存在
执行:sudo ls -l /var/log/syslog /var/log/messages 2>/dev/null。
第二步:若 /var/log/syslog 存在且可读,运行:sudo grep -i "shutdown\|poweroff" /var/log/syslog | tail -n 1。
第三步:若 /var/log/messages 更活跃(常见于中标麒麟服务器版),则运行:sudo grep -i "system halted\|runlevel 0" /var/log/messages | tail -n 1。
注意:runlevel 0 表示系统进入关机状态,是比 shutdown 更底层的内核信号,匹配成功率更高。

















