Как проверить, было ли последнее завершение работы чистым?

17

Как можно сказать, что мое последнее выключение было правильно выполнено в Ubuntu 11.10 или если машина была выключена, прежде чем отключать ОС?

    
задан Vikramjeet 10.02.2012 в 11:27
источник

3 ответа

19

Если машина была выключена должным образом, в каталоге kern.log должен быть журнал завершения, зарегистрированный в каталоге / var / log . После выключения всякий раз, когда происходит обычная загрузка, OS записывает журнал для того же самого в kern.log. Следовательно, каждому загрузочному журналу должен предшествовать журнал выключения, если процесс загрузки и выключения был нормальным.

Всякий раз, когда происходит нормальное отключение «, ведение журнала ядра (proc) остановлено. » написано в kern.log. Аналогично всякий раз, когда происходит загрузка, « imklog 5.8.1, log source = / proc / kmsg запущен. " записывается в kern.log

Эти два сообщения должны быть в порядке, если выключение было нормальным, а не внезапным отключением питания. Не должно быть « imklog 5.8.1, log source = / proc / kmsg запущено. » сообщение без сообщения «Отключение журнала» (proc). », если предыдущее выключение было нормальным. Оба сообщения должны всегда встречаться в паре в журнале.

Просто введите терминал: - gedit /var/log/kern.log

и проверьте пары выключения и загрузки. Если их не найти нигде что остановка должна была быть крутой.

    
ответ дан Vikramjeet 28.02.2012 в 17:07
источник
0

Привет, вы можете запустить скрипт, чтобы проверить, было ли последнее закрытие правильным или нет. Просто поместите следующие строки в сценарий bash и запустите его после загрузки системы.

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


if [[

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


]]; then

  echo Last Shutdown-proper

else

   echo Last Shutdown_not proper 

fi

rm data_file

ПРИМЕЧАНИЕ. Пожалуйста, будьте в корневом пользователе, чтобы запустить скрипт. Это не повредит вашей системе :)

    
ответ дан Sid 20.06.2014 в 03:30
0

Начиная с 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
    
ответ дан Victorvg 09.03.2018 в 15:08