2010-07-24 20:12:11 +0000 2010-07-24 20:12:11 +0000
40
40

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

Je me demandais s'il existe un fichier journal dans Linux qui enregistre chaque fois que l'ordinateur est éteint ?

La raison pour laquelle je pose cette question est que je fais des tests sur 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. S'il existe un fichier journal qui enregistre chaque fois que l'ordinateur est éteint, cela facilitera grandement mes tests.

J'utilise Ubuntu 10.04. Merci !

Réponses (8)

29
29
29
2010-07-29 09:30:27 +0000

Et pourquoi pas la commande last -x shutdown ?

16
16
16
2010-07-24 21:43:43 +0000

Le fichier /var/log/messages devrait vraiment contenir quelque chose en rapport avec les arrêts, par exemple le mien (CentOS 5) a des lignes comme celle-ci :

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.conf ou /etc/rsyslog.conf ou équivalent pour vous assurer que les journaux s'y trouvent. Vous aurez probablement besoin des privilèges de root pour lire les fichiers journaux.

Aussi, bien qu'elle ne soit pas arrêtée en soi, la “dernière” commande devrait signaler les redémarrages.

N'y a-t-il vraiment rien dans les journaux au moment de votre dernier arrêt ?

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

/proc/acpi/battery/BAT0/

Là, les fichiers “state” et “info” ont l'air intéressants. Vous pouvez regarder la capacité restante dans le fichier “state” pendant que vous utilisez votre ordinateur portable dans différentes conditions pour voir à quelle vitesse elle baisse.

5
5
5
2015-03-26 14:50:50 +0000

Tout d'abord, permettez-moi de commencer par dire que je sais qu'il s'agit d'un sujet plus ancien. Je fais ce commentaire uniquement pour que les autres personnes qui le trouveront en fouillant sur le net (comme je l'ai fait aujourd'hui) aient une réponse claire.

Deuxièmement, veuillez noter que la commande suivante est une mauvaise pratique et tombe dans la catégorie des “utilisations inutiles du chat” (recherchez le sur google)…

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…) d'ailleurs n'exigent pas que le chat lise le contenu d'un fichier. Il suffit de placer le chemin et le nom du fichier après la commande pour la passer en argument. Ajouter un pipe et une autre commande externe (cat) n'est qu'une perte de temps et de ressources.

Enfin, quant à 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. Elle 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 root (arrêt de la console inclus) dans le journal de 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 aidera tous ceux qui tomberont sur ce fil de discussion :-)

4
4
4
2010-07-24 20:16:46 +0000

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

2
2
2
2010-07-25 01:22:07 +0000

Si vous voulez savoir combien de temps votre ordinateur a été en service dans le passé, vous pouvez utiliser une méthode comme l'uptimed.

il est fourni avec un programme appelé uprecords qui vous indique combien de temps votre ordinateur a été allumé.

1
1
1
2017-01-19 18:02:30 +0000

last reboot a travaillé pour moi sur CentOS 6.7.

Pour indiquer l'année dans la sortie, il est donc logique, si vous avez plus d'une année d'enregistrements, de faire

last -F reboot

Bien que je suppose que le commutateur -F ne fonctionne pas sur certains systèmes, comme Solaris. Il fait apparemment partie des derniers de GNU, cependant.

Merci à https://unix.stackexchange.com/a/97597/174520

1
1
1
2014-05-07 13:52:00 +0000

Voici une liste de tous les messages de la journée en cours :

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

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

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

0
0
0
2010-07-24 21:15:36 +0000

si aucun journal n'est présent, vous pouvez essayer d'ajouter un “date >>mylog” au script d'arrêt (dans certains disques, il est appelé rc.shutdown)

ou, il y a aussi un moyen sans préavilage nécessaire. run :

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

et suivez mon blog à la prochaine session.