Come posso dire che il mio ultimo arresto è stato eseguito correttamente in Ubuntu 11.10 o se la macchina è stata spenta prima di spegnere il sistema operativo?
Come posso dire che il mio ultimo arresto è stato eseguito correttamente in Ubuntu 11.10 o se la macchina è stata spenta prima di spegnere il sistema operativo?
Risposte:
Se la macchina è stata arrestata correttamente, è necessario che sia presente un registro di arresto nel kern.log
file registrato nella /var/log
directory. Dopo uno spegnimento ogni volta che si verifica un avvio normale, il sistema operativo scrive il registro per lo stesso in kern.log. Pertanto, ogni registro di avvio deve essere preceduto da un registro di arresto se il processo di avvio e arresto era normale.
Ogni volta che un normale arresto si verifica "Kernel logging (proc) stopped."
è scritto in kern.log. Allo stesso modo ogni volta che si verifica un avvio"imklog 5.8.1, log source = /proc/kmsg started."
è scritto in kern.log
Questi due messaggi dovrebbero essere nell'ordine se lo spegnimento era normale piuttosto che uno spegnimento improvviso. Non dovrebbe esserci il messaggio " imklog 5.8.1, log source = / proc / kmsg avviato. " Senza il " Log del kernel (proc) interrotto. " se lo spegnimento precedente era normale. Entrambi i messaggi devono sempre apparire in coppia nel registro.
Digita semplicemente il terminale: -
gedit /var/log/kern.log
e controlla le coppie di log di spegnimento e avvio. Se non vengono trovati in coppie da nessuna parte, l'arresto deve essere stato improvviso.
kern.log.1
.
cat /var/log/syslog | grep -i "stopped"
(e simili. anche test di sanità mentale al contrario), nonostante ciò fosse chiaramente parte dei precedenti messaggi di spegnimento ... (il materiale di registro visibile, quando si preme ESC per uccidere la schermata iniziale mentre si spegne) - qualcuno ha ricevuto un aggiornamento?
A partire da Ubuntu 16.04, un arresto pulito seguito da un corretto riavvio scriverà queste 2 righe una dopo l'altra in / 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
Ciao, puoi eseguire uno script per verificare se l'ultimo arresto è stato corretto o meno. Basta inserire le seguenti righe in uno script bash ed eseguirlo dopo l'avvio del sistema.
#!/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
NOTA: si prega di essere in un utente root per eseguire lo script. Non danneggerà il tuo sistema :)