Jak sprawdzić, czy ostatnie zamknięcie było czyste?

23

Jak mogę stwierdzić, że moje ostatnie zamknięcie zostało poprawnie wykonane w systemie Ubuntu 11.10 lub czy komputer został wyłączony przed zamknięciem systemu operacyjnego?

Vikramjeet
źródło
2
Spójrz na /var/log/syslog.0
Gigili 10.12

Odpowiedzi:

23

Jeśli urządzenie zostało poprawnie zamknięte kern.log, w /var/log katalogu musi być zalogowany dziennik zamknięcia . Po wyłączeniu za każdym razem, gdy nastąpi normalne uruchomienie, system operacyjny zapisuje dziennik tego samego w kern.log. Dlatego każdy dziennik rozruchu musi być poprzedzony dziennikiem zamknięcia, jeśli proces uruchamiania i zamykania był normalny.

Ilekroć nastąpi normalne zamknięcie,"Kernel logging (proc) stopped." jest zapisywane w kern.log. Podobnie, gdy wystąpi rozruch,"imklog 5.8.1, log source = /proc/kmsg started." zapisywany jest w pliku kern.log

Te dwa komunikaty powinny być w kolejności, jeśli wyłączenie było normalne, a nie nagłe wyłączenie zasilania. Nie powinno być komunikatu „ imklog 5.8.1, źródło dziennika = / proc / kmsg rozpoczęte. ” Bez komunikatu „ Rejestrowanie jądra (proc) zatrzymane. ”, Jeśli poprzednie zamknięcie było normalne. Oba komunikaty powinny zawsze występować w parach w dzienniku.wprowadź opis zdjęcia tutaj

Wystarczy wpisać terminal: -

gedit /var/log/kern.log

i sprawdź pary dziennika zamykania i rozruchu. Jeśli nie znaleziono ich w parach, wyłączenie musiało nastąpić nagle.

Vikramjeet
źródło
1
zastąp gedit domyślnym edytorem tekstu.
Vikramjeet
mój kern.log jest pusty
Nade
1
@Nie spróbuj kern.log.1.
inny ben
2
żadne z tych wyrażeń nie ma w moim dzienniku. Nawet ich część. Naprawdę muszę wiedzieć, czy mój komputer jest prawidłowo wyłączany b / c Wierzę, że mam dziecko, które po prostu przytrzymuje przycisk zasilania.
KI4JGT
od wersji Ubunutu 16.04 nie wydaje się to już poprawne. tzn. nie dostaję cat /var/log/syslog | grep -i "stopped"(i podobnie. również testowałem poczytalność, wręcz przeciwnie), pomimo tego, że była to wyraźnie część poprzednich komunikatów zamykania ... (widoczne logi, po naciśnięciu ESC, aby zabić ekran powitalny podczas zamykania) - ktoś dostał aktualizację?
Frank Nocke
4

Począwszy od Ubuntu 16.04, czyste zamknięcie, a następnie prawidłowe ponowne uruchomienie, zapisze te 2 wiersze jeden po drugim w / 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
źródło
0

Cześć, możesz uruchomić skrypt, aby sprawdzić, czy ostatnie zamknięcie było prawidłowe, czy nie. Wystarczy umieścić następujące wiersze w skrypcie bash i uruchomić go po uruchomieniu systemu.

#!/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

UWAGA: Należy uruchomić użytkownika root, aby uruchomić skrypt. Nie zaszkodzi twojemu systemowi :)

Sid
źródło