如何检查上次关机是否是干净的?

如何检查上次关机是否是干净的?

如何判断我在 Ubuntu 11.10 中上次关机是否正确完成或者在关闭操作系统之前机器是否已关闭?

答案1

kern.log如果机器正常关机,则目录中的文件中必须记录关机日志/var/log 。关机后,只要正常启动,操作系统就会将日志写入 kern.log。因此,如果启动和关机过程正常,则每个启动日志之前都必须有关机日志。

每当一个正常关闭发生"Kernel logging (proc) stopped."写入 kern.log。同样,每当引导发生"imklog 5.8.1, log source = /proc/kmsg started."写在 kern.log 中

如果关机是正常关机而非突然断电,则这两条消息应该按顺序出现。应该没有“imklog 5.8.1,日志源 = /proc/kmsg 已启动。“ 消息不包含 ”内核日志记录(proc)已停止。如果上次关机正常,则显示“消息”。这两条消息应该始终成对出现在日志中。在此处输入图片描述

只需在终端中输入:-

gedit /var/log/kern.log

并检查关机和启动日志对。如果在任何地方都没有发现它们成对出现,则关机一定是突然的。

答案2

我使用last命令。它列出了重新启动和崩溃。

答案3

从 Ubuntu 16.04 开始,干净关机然后正确重启将会在 /var/log/syslog 中连续写入这两行

Mar  9 14:14:06 *YOUR-HOSTNAME* rsyslogd: [origin software="rsyslogd" swVersion="8.16.0" x-pid="1086" x-info="http://www.rsyslog.com"] exiting on signal 15.
Mar  9 15:23:42 *YOUR-HOSTNAME* rsyslogd: [origin software="rsyslogd" swVersion="8.16.0" x-pid="1069" x-info="http://www.rsyslog.com"] start

答案4

您好,您可以运行脚本来检查上次关机是否正确。只需将以下几行放入 bash 脚本中,然后在系统启动后运行它即可。

#!/bin/bash
B="1"
touch data_file
echo $(($(grep -nr "$(cat  /var/log/kern.log | grep "$(date -d $(who -b | awk '{printf $3}') '+%b %-d')" | grep imklog   | grep $(cat  /var/log/kern.log | grep "$(date -d $(who -b | awk '{printf $3}') '+%b %-d')" | grep imklog | cut -d' ' -f3 | sort -k1 -r | sort --unique --stable -k2,3))" /var/log/kern.log | awk '{printf $1}' | grep -oE "[[:digit:]]{1,}")-$B))  >  data_file


if [[

($(sed -n $(cat data_file)p /var/log/kern.log | awk '{print $6}') == "Kernel") && 
($(sed -n $(cat data_file)p /var/log/kern.log | awk '{print $7}') == "logging") &&
($(sed -n $(cat data_file)p /var/log/kern.log | awk '{print $8}') == "(proc)") &&
($(sed -n $(cat data_file)p /var/log/kern.log | awk '{print $9}') == "stopped.") 


]]; then

  echo Last Shutdown-proper

else

   echo Last Shutdown_not proper 

fi

rm data_file

注意:请以 root 用户身份运行该脚本。它不会损害您的系统 :)

相关内容