답변:
머신이 올바르게 종료 된 경우 디렉토리 에 kern.log
파일에 종료 로그가 기록되어 있어야합니다 /var/log
. 정상적인 부팅이 발생할 때마다 종료 된 후 OS는 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
종료 및 부팅 로그 쌍을 확인하십시오. 쌍이없는 곳에서 발견되면 종료가 갑자기 발생한 것입니다.
kern.log.1
합니다.
cat /var/log/syslog | grep -i "stopped"
, 이전 종료 메시지의 일부 였음에도 불구하고 나는 (그리고 비슷한. 또한 신성 테스트를 거쳤습니다.) -누구나 업데이트를 받았습니까?
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
참고 : 스크립트를 실행하려면 루트 사용자 여야합니다. 그것은 당신의 시스템을 해치지 않을 것입니다 :)