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

如何判断我的上次关机是在Ubuntu 11.10中正确完成还是机器在关闭操作系统之前关闭了?

如果计算机正常关闭,则必须在/ var / log目录中的kern.log文件中记录关闭日志。 在正常启动发生时关闭后,操作系统会在kern.log中写入相同的日志。 因此,如果启动和关闭过程正常,则每个启动日志必须在关闭日志之前。

每当正常关闭发生时,“ 内核日志记录(proc)停止。 ”都写在kern.log中。 类似地,每当引导发生“ imklog 5.8.1,log source = / proc / kmsg started。 ”都写在kern.log中

如果关机正常而不是突然断电,这两条消息应该在顺序中。 如果先前的关闭正常则不应该出现“ imklog 5.8.1,log source = / proc / kmsg started。 ”消息而没有“ 内核日志记录(proc)已停止。 ”消息。 这两条消息应始终在日志中成对出现。 在此处输入图像描述

只需键入终端: – gedit /var/log/kern.log

并检查关闭和启动日志对。 如果发现它们不成对,那么关闭必定是突然的。

从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 

您好,您可以运行脚本来检查上次关机是否正常。 只需将以下行放在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用户中运行脚本。 它不会伤害你的系统:)