web-dev-qa-db-fra.com

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

Comment savoir si 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?

23
Vikramjeet

Si la machine a été arrêtée correctement, un journal d'arrêt doit être consigné dans le fichier kern.log du répertoire /var/log. Après un arrêt chaque fois qu'un démarrage normal se produit, le système d'exploitation écrit le journal de la même manière 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 s'est déroulé normalement.

Chaque fois qu’un arrêt normal "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 doivent être dans l’ordre si l’arrêt était normal plutôt qu’une mise hors tension brusque. Il ne devrait y avoir aucun message " imklog 5.8.1, source de journal =/proc/kmsg. " sans le " La journalisation du noyau (proc) s’est arrêtée. "message si l’arrêt précédent était normal. Les deux messages doivent toujours apparaître deux par deux dans le journal.enter image description here

Il suffit de taper dans le terminal: -

gedit /var/log/kern.log

et vérifiez les paires de journaux d'arrêt et d'amorçage. S'ils ne se trouvent pas par paires n'importe où, cet arrêt doit avoir été brutal.

23
Vikramjeet

À partir d’Ubuntu 16.04, un arrêt complet suivi d’un redémarrage correct écrira ces deux 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
4
Victorvg

Bonjour, vous pouvez exécuter un script pour vérifier si le dernier arrêt était correct ou non. Il suffit de mettre les lignes suivantes dans un script bash et de l'exécuter après le 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 vous connecter en tant qu'utilisateur root pour exécuter le script. Cela ne nuira pas à votre système :)

0
Sid