Je veux connaître le temps de fonctionnement depuis le dernier réveil de veille.
La commande uptime
affiche uniquement la différence entre l'heure actuelle moins la dernière heure de démarrage.
Je veux connaître le temps de fonctionnement depuis le dernier réveil de veille.
La commande uptime
affiche uniquement la différence entre l'heure actuelle moins la dernière heure de démarrage.
Réponses:
Dans /var/log/pm-suspend.log
, recherchez la dernière ligne ressemblant à celle-ci:
Sun Dec 16 09:30:31 CET 2012: Awake.
C'est votre dernière heure de réveil. Vous pouvez calculer votre temps de disponibilité depuis la manière suggérée par Paul.
Périodiquement, vos logrotate
journaux "tournent" pour les empêcher de devenir trop gros, vous pouvez donc trouver un pm-suspend.log
fichier vide . Dans ce cas, recherchez simplement le pm-suspend.log.1
fichier (vous pouvez également trouver d'autres fichiers journaux nommés comme pm-suspend.log.2.gz
et ainsi de suite; vous pouvez les examiner à l'aide de zcat
ou zless
).
pm-suspend.log
est vide? :(
cat /var/log/pm-suspend.log /var/log/pm-suspend.log.1 | grep -B1 Awake; echo "--"; zcat /var/log/pm-suspend.log.*.gz | grep -B1 Awake
Pour les postes de travail / serveurs exécutant systemd, bien qu'il n'y ait pas de commande directe qui dira les informations directement (pour autant que je sache), toutes les données sont capturées dans le journal.
Vous pouvez grep le journal, par exemple:
echo ">> [SUSPEND] Times during current boot"
journalctl -b 0 |grep "]: Suspending system..."
echo ">> [WAKE] Times during current boot"
journalctl -b 0 |grep "PM: Finishing wakeup"
Ou, pour une sortie sophistiquée, j'ai écrit un script python3 (fonctionne très bien sur Fedora 23) Exemple de sortie:
Initial Boot Timestamp: 2016-01-15 09:31:32
Wake Timestamp | Suspend Timestamp | Awake Time |
-------------------- | -------------------- | -------------------- |
2016-01-15 09:31:32 | 2016-01-15 09:36:03 | 0h 4m |
2016-01-15 09:36:22 | 2016-01-15 19:15:04 | 9h 38m |
2016-01-15 19:22:21 | 2016-01-15 20:00:05 | 0h 37m |
...
------------------- | -------------------- | -------------------- |
Summary: Days Since Boot [8.23] | Days Awake [4.14] | Suspend/Wake Cycles: [28]
Le script est dans github. lien vers github repo
journalctl -b 0 -o short-iso MESSAGE="PM: Finishing wakeup." | tail -1 | cut -d" " -f1
juste pour le temps du dernier réveil
Le programme pm-suspend n'est pas la seule option pour suspendre l'ordinateur. Mon journal de ce programme est maintenant vide, mais j'ai trouvé une commande plus fiable:
cat /var/log/syslog | grep 'systemd-sleep' | grep "Suspending\|resumed"
Et la sortie est:
Oct 2 09:11:48 dmatej-lenovo systemd-sleep[931]: Suspending system...
Oct 2 09:53:10 dmatej-lenovo systemd-sleep[931]: System resumed.
Oct 2 15:02:48 dmatej-lenovo systemd-sleep[27516]: Suspending system...
Oct 2 16:07:19 dmatej-lenovo systemd-sleep[27516]: System resumed.
Oct 2 16:32:48 dmatej-lenovo systemd-sleep[29622]: Suspending system...
Oct 2 17:16:41 dmatej-lenovo systemd-sleep[29622]: System resumed.
Oct 3 00:24:58 dmatej-lenovo systemd-sleep[21316]: Suspending system...
Oct 3 08:17:22 dmatej-lenovo systemd-sleep[21316]: System resumed.
Oct 3 09:09:25 dmatej-lenovo systemd-sleep[24739]: Suspending system...
Oct 3 09:50:47 dmatej-lenovo systemd-sleep[24739]: System resumed.
modification de la meilleure vérification des étapes
grep ': Awake' /var/log/pm-suspend.log
modifier haha merci pour les commentaires: D
cat
point!
Je n'avais pas pm-suspend.log sur ma machine.
Cela a fonctionné pour moi:
/usr/bin/pmset -g log | grep Wake | grep "due to" | tail -n1
Dit également ce qui a réveillé l'ordinateur. :-)
pmset
trouvée et aucun fichier tel que pmset
et pm-suspend.log
est vide? :(
pm-suspend.log
manquait et cela fonctionne pour moi (sur mon iMac)
Qu'utilisez-vous pour lancer la mise en veille?
Si vous pouvez utiliser un script, après la ligne
echo -n "standby" > /proc/acpi/sleep
tu pourrais avoir la ligne
echo `date +%s` >> /var/log/wakeups.log
Ou quelque chose de similaire. Cela signifierait que la première chose que la machine a fait lorsqu'elle s'est réveillée a été d'écrire l'heure et la date actuelles dans un fichier journal (n secondes depuis l'époque).
Alors tail -1 /var/log/wakeups.log
je vous donnerais la dernière fois. Vous pouvez soustraire cela de l'heure actuelle pour obtenir des secondes depuis le dernier réveil.
Recherchez la dernière occurrence de la chaîne "PM: restauration des périphériques terminée" dans / var / log / messages. Si votre machine a fonctionné trop longtemps, le journal peut cependant être tourné.
Vous pouvez utiliser tuptime pour suivre la durée de vie de démarrage / arrêt du système.
Étendre la réponse aux étapes:
grep Awake /var/log/pm-suspend.log | tail -1
Cela obtiendra la ligne avec la dernière heure de réveil.
Je pense que c'est une façon très solide de le faire:
systemd[1]: Started Run anacron jobs at resume
Rechercher quand l'OS démarre anacron, se produira cependant la machine est allumée
Aucune de ces réponses n'a fonctionné pour moi. Mais j'ai trouvé utilement sleep.target
ce qui est fait exactement pour cela:
$ journalctl -n4 -u sleep.target
nov. 17 17:16:37 kaa systemd[1]: Reached target Sleep.
nov. 17 18:46:22 kaa systemd[1]: Stopped target Sleep.
nov. 17 19:27:31 kaa systemd[1]: Reached target Sleep.
nov. 17 19:45:21 kaa systemd[1]: Stopped target Sleep.