Comment vérifier si le dernier arrêt était propre?

23

Comment savoir que mon dernier arrêt a été correctement effectué dans Ubuntu 11.10 ou si la machine a été éteinte avant d'arrêter le système d'exploitation?

Vikramjeet
la source
2
Jetez un oeil à /var/log/syslog.0
Gigili

Réponses:

23

Si la machine a été arrêtée correctement, il doit y avoir un kern.logfichier journal de journalisation dans le /var/log répertoire. Après un arrêt chaque fois qu'un démarrage normal se produit, le système d'exploitation écrit le journal pour le même dans kern.log. Par conséquent, chaque journal de démarrage doit être précédé d'un journal d'arrêt si le processus de démarrage et d'arrêt était normal.

Chaque fois qu'un arrêt normal se produit "Kernel logging (proc) stopped."est écrit dans kern.log. De même, chaque fois qu'un démarrage se produit "imklog 5.8.1, log source = /proc/kmsg started."est écrit dans kern.log

Ces deux messages devraient être dans l'ordre si l'arrêt était normal plutôt que de coupure brutale. Il ne devrait pas y avoir de message « imklog 5.8.1, log source = / proc / kmsg démarré » sans le message « Journalisation du noyau (proc) arrêtée » si le précédent arrêt était normal. Le message à la fois doit toujours apparaître en paire dans le journal.entrez la description de l'image ici

Tapez simplement le terminal: -

gedit /var/log/kern.log

et vérifiez les paires de journaux d'arrêt et de démarrage. S'ils ne se trouvent pas par paires, cet arrêt doit avoir été brutal.

Vikramjeet
la source
1
remplacez gedit par votre éditeur de texte par défaut.
Vikramjeet
mon kern.log est vide
Nade
1
@Nade essayez kern.log.1.
un autre ben
2
aucune de ces phrases n'est dans mon journal. Pas même une partie d'entre eux. J'ai vraiment besoin de savoir si mon ordinateur s'éteint correctement b / c Je crois que j'ai un enfant qui maintient simplement le bouton d'alimentation enfoncé.
KI4JGT
depuis Ubunutu 16.04, cela ne semble plus correct. c'est-à-dire que je ne reçois pas cat /var/log/syslog | grep -i "stopped"(et similaire. également testé au bon sens au contraire), malgré le fait que cela faisait clairement partie des messages d'arrêt précédents ... - quelqu'un a une mise à jour?
Frank Nocke
4

Depuis Ubuntu 16.04, un arrêt net suivi d'un redémarrage correct écrira ces 2 lignes l'une après l'autre dans / 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
la source
0

Salut, vous pouvez exécuter un script pour vérifier si le dernier arrêt a été correct ou non. Mettez simplement les lignes suivantes dans un script bash et exécutez-le après un démarrage du système.

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

REMARQUE: veuillez être un utilisateur root pour exécuter le script. Cela n'endommagera pas votre système :)

Sid
la source