Existe-t-il un journal qui enregistre les arrêts dans Linux?

38

Je me demandais s'il existe un fichier journal sous Linux qui enregistre chaque fois que l'ordinateur est arrêté?

La raison pour laquelle je demande, c'est que je fais des tests concernant la durée de vie de la batterie de mon ordinateur portable dans certaines conditions. Mon ordinateur portable est configuré pour s'éteindre automatiquement lorsqu'il reste environ 10 minutes de batterie, donc s'il y a un fichier journal quelque part qui enregistre lorsque l'ordinateur est éteint, cela facilitera beaucoup mes tests.

J'utilise Ubuntu 10.04. Merci!

Michael
la source

Réponses:

15

Le /var/log/messagesfichier devrait vraiment contenir quelque chose concernant les arrêts, par exemple le mien (CentOS 5) a des lignes comme ceci:

Jul 18 23:00:13 nero shutdown[2649]: shutting down for system halt
...
Jul 18 23:00:27 nero kernel: Kernel logging (proc) stopped.
Jul 18 23:00:27 nero kernel: Kernel log daemon terminating.

Vérifiez votre /etc/syslog.confou son /etc/rsyslog.conféquivalent pour vous assurer que les journaux y vont. Vous aurez probablement besoin des privilèges root pour lire les fichiers journaux.

De plus, bien qu'il ne s'agisse pas d'arrêts en soi, la "dernière" commande devrait signaler les redémarrages.

N'y a-t-il vraiment rien dans les journaux au moment de la dernière fermeture?

Pour vos tests, gardez à l'esprit que votre ordinateur ne sait qu'il lui reste que 10 minutes en raison des informations que la batterie rapporte, qui peuvent ou non être précises. Plutôt que d'attendre les arrêts, vous pouvez consulter directement les informations ACPI. Sur mon ordinateur portable, c'est ici:

/proc/acpi/battery/BAT0/

Là-bas, les fichiers "état" et "info" semblent intéressants. Vous pouvez regarder la capacité restante dans le fichier d'état pendant que vous exécutez votre ordinateur portable dans diverses conditions pour voir à quelle vitesse il baisse.

Un autre
la source
3
Sauf si je le manque, je ne vois aucune sorte de message de "fermeture" dans / var / log / messages. Le message "Journalisation du noyau (proc) arrêtée" apparaît parfois, mais pas toujours. Cependant, l'exécution last -xfonctionne. Cette commande affiche une ligne qui ressemble à ceci: shutdown system down 2.6.32-23-generi Sun Jul 25 09:12 - 19:00 (-14815+-13: Merci pour le conseil d'information sur la batterie. Mon système a également cela, donc je vais devoir vérifier cela! Il semble mettre à jour ces fichiers toutes les 5 secondes environ. Merci!
Michael
Merci encore. Mes résultats sont ici: mangstacular.blogspot.com/2010/07/…
Michael
28

Et la commande last -x shutdown?

Janne Pikkarainen
la source
5

Tout d'abord, permettez-moi de commencer en disant que je sais que c'est un fil plus ancien. Je commente seulement pour que ceux qui trouvent cela en fouillant sur le net (comme je l'ai fait aujourd'hui) auront une réponse claire.

Deuxièmement, veuillez noter que la commande suivante est une mauvaise pratique et relève de la catégorie "utilisations inutiles de chat" (recherche google pour cela) ...

cat /var/log/messages | grep "`LC_ALL=en_en.utf8 date +"%b %e"`"

Cette ligne doit être remplacée par:

grep "`LC_ALL=en_en.utf8 date +"%b %e"`" /var/log/messages

grep, et la plupart des commandes unix / linux (sed, awk, etc ...) n'ont d'ailleurs pas besoin de cat pour lire le contenu d'un fichier. Il suffit de placer le chemin et le nom du fichier après la commande pour le passer en argument. L'ajout d'un canal et d'une autre commande externe (cat) n'est qu'une perte de temps et de ressources.

Enfin, pour savoir où trouver un enregistrement des arrêts et / ou redémarrages du système, utilisez la dernière commande car c'est exactement ce à quoi elle est destinée. Il lit le fichier journal / var / log / wtmp pour toutes les entrées de connexion / déconnexion. Les arrêts et redémarrages étant en fait un événement de connexion / déconnexion au niveau du système, ils sont enregistrés ici. Il en va de même pour l'arrêt de la console racine, il s'agit d'un événement de déconnexion.

Exemple:

last -5 reboot shutdown root

Cela vous donnera les 5 dernières entrées de redémarrage, d'arrêt et de racine (arrêt de la console inclus) dans le journal wtmp.

Résultat:

reboot    ~                         Mon Mar 23 14:51
shutdown  ~                         Mon Mar 23 14:49
root      console                   Mon Mar 23 14:49 - shutdown  (00:00)
reboot    ~                         Mon Mar 16 09:54
shutdown  ~                         Thu Mar 12 17:41

J'espère que cela aide toute personne qui tombe sur ce fil. :-)

David Dreggors
la source
Alternativement simplement last -xou last -F -R -x runlevel. À des fins de surveillance de la batterie sous Ubuntu, il grep hooks /var/log/pm-suspend.logpeut également être utile d'afficher la suspension et la reprise. Malheureusement, pm-powersave.log ne stocke pas les heures auxquelles l'alimentation CA est connectée (sauf si vous ajoutez votre propre crochet). help.ubuntu.com/community/PowerManagement/ReducedPower vaut peut-être la peine d'être lu.
Cedric Knight
Concernant UUoC, $ CPU time << $ Brain time ...
MikeP
1
Chaque personne mentionnant des «utilisations inutiles de chat» consacre probablement plus de temps à souligner le fait que le temps CPU total consacré aux utilisations inutiles de chat par tous les ordinateurs de la terre (et parfois, elle gonfle inutilement sa réponse autrement agréable comme un effet secondaire - - comme celui-ci)
ndemou
4

Le fichier / var / log / messages doit contenir ces informations

ennuikiller
la source
Je n'ai rien vu dans ce fichier concernant la fermeture. :( J'ai essayé de récupérer tous les autres fichiers de ce répertoire en utilisant l'horodatage du moment où j'ai éteint l'ordinateur, mais pas de chance:grep -r "Jul 24 14:" /var/log/*
Michael
Le fichier n'existe pas sur Linux Mint Mate 17.
Eric Wang
2

si vous voulez savoir combien de temps votre ordinateur a fonctionné dans le passé, vous pouvez utiliser quelque chose comme optimisé.

il est livré avec un programme appelé uprecords qui vous montre depuis combien de temps votre ordinateur est allumé.

user43856
la source
1

Voici un one-liner pour lister tous les messages de la journée en cours:

cat /var/log/messages | grep "`LC_ALL=en_en.utf8 date +"%b %e"`"

Cela a été testé sur CentOS donc YMMV.

Et bien sûr il y a last rebootet last shutdown(comme mentionné), mais c'est trop simple pour mes besoins (ne fournit que des dates).

Nux
la source
1

last reboot travaillé pour moi sur CentOS 6.7.

Pour afficher l'année dans la sortie, il est donc logique que vous ayez plus d'un an d'enregistrements, faites

last -F reboot

Bien que je suppose que le commutateur -F ne fonctionne pas sur certains systèmes, comme Solaris. Cela fait apparemment partie du dernier de GNU.

Merci à /unix//a/97597/174520

Aaron Wallentine
la source
0

si aucun journal n'est présent, vous pouvez essayer d'ajouter du 'date >> mylog' au script d'arrêt (dans certaines dists, il s'appelle rc.shutdown)

ou, il existe également un moyen sans prévilage nécessaire. courir:

while [ 1 ];do sleep 5;date>mylog;sync;done

et queue mylog sur la prochaine session.

Jokester
la source