Как можно узнать, что мое последнее отключение было правильно выполнено в Ubuntu 11.10 или если машина была выключена перед выключением ОС?
Если машина была правильно отключена, то в журнале 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, log source = / proc / kmsg началось. » без сообщения « Регистрация ядра (proc) остановлена. », если предыдущее завершение было нормальный. Оба сообщения всегда должны встречаться в журнале в паре.
Просто введите в терминал: -
gedit /var/log/kern.log
и проверьте пары журнала выключения и загрузки. Если они нигде не встречаются парами, то это отключение должно быть внезапным.
Привет, вы можете запустить скрипт, чтобы проверить, было ли последнее отключение корректным или нет. Просто вставьте следующие строки в скрипт 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. Это не повредит вашей системе :)
Начиная с 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
Я использую команду последняя
. В нем перечислены перезагрузки и сбои.