回答:
マシンが正常にシャットダウンされた場合、 ディレクトリ内のkern.log
ファイルにシャットダウンログが記録されている必要があります/var/log
。通常のブートが発生するたびにシャットダウンした後、OSは同じログをkern.logに書き込みます。したがって、ブートおよびシャットダウンプロセスが正常であった場合、すべてのブートログの前にシャットダウンログが必要です。
通常のシャットダウンが発生するたびに、"Kernel logging (proc) stopped."
kern.logに書き込まれます。同様に、ブートが発生するたび"imklog 5.8.1, log source = /proc/kmsg started."
にkern.logに書き込まれます
突然の電源オフではなく、シャットダウンが正常であった場合、これら2つのメッセージは順番に並んでいるはずです。「imklog 5.8.1、log source = / proc / kmsg started。」というメッセージはありません。前回のシャットダウンが正常だった場合、「Kernel logging(proc)stopped。」メッセージは表示されません。両方のメッセージは、常にログにペアで表示されるはずです。
ターミナルに入力するだけです:-
gedit /var/log/kern.log
シャットダウンとブートログのペアを確認します。それらがペアで見つからない場合、シャットダウンは突然行われているはずです。
kern.log.1
。
cat /var/log/syslog | grep -i "stopped"
、これは以前のシャットダウンメッセージの一部であったにもかかわらず、取得できません(また、同様に正気度テストも行われません)。 -誰もがアップデートを入手しましたか?
Ubuntu 16.04の時点で、クリーンシャットダウンに続いて適切な再起動を行うと、これらの2行が/ 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ユーザーになる必要があります。システムに害を与えることはありません:)