Comment trouver la disponibilité depuis le dernier réveil de veille

29

Je veux connaître le temps de fonctionnement depuis le dernier réveil de veille.

La commande uptimeaffiche uniquement la différence entre l'heure actuelle moins la dernière heure de démarrage.

utilisateur Debian
la source

Réponses:

30

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 logrotatejournaux "tournent" pour les empêcher de devenir trop gros, vous pouvez donc trouver un pm-suspend.logfichier vide . Dans ce cas, recherchez simplement le pm-suspend.log.1fichier (vous pouvez également trouver d'autres fichiers journaux nommés comme pm-suspend.log.2.gzet ainsi de suite; vous pouvez les examiner à l'aide de zcatou zless).

pas
la source
cela a fonctionné pour moi
Jacek Pietal
5
Et si pm-suspend.logest vide? :(
cprn
1
Si vous vous souciez également de suspendre l'horodatage, utilisez: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
webbertiger
2
Aucun fichier de ce type sur mon ordinateur (exécutant Ubuntu 16.04 LTS)
Ramon Suarez
Le fichier n'est présent que si vous avez installé pm-suspend. Mais par exemple, Kubuntu passe à l'état suspendu également après avoir fermé le cahier. Le fichier pm-suspend est alors vide.
dmatej
15

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

Ari
la source
1
Cela a fonctionné pour moi sur Ubuntu 16.04
raphinesse
Bon à savoir que nous pouvons consulter le journal.
Shiplu Mokaddim
Utiliser journalctl -b 0 -o short-iso MESSAGE="PM: Finishing wakeup." | tail -1 | cut -d" " -f1juste pour le temps du dernier réveil
raphinesse
13

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.
dmatej
la source
1

modification de la meilleure vérification des étapes

grep ': Awake' /var/log/pm-suspend.log

modifier haha ​​merci pour les commentaires: D

Jacek Pietal
la source
Et vous avez gagné une utilisation inutile de catpoint!
gniourf_gniourf
Pas de votes positifs pour une utilisation inutile de «chat».
Magellan
1

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. :-)

Mike
la source
1
Que faire si aucune commande n'a été pmsettrouvée et aucun fichier tel que pmsetet pm-suspend.logest vide? :(
cprn
pm-suspend.logmanquait et cela fonctionne pour moi (sur mon iMac)
dayuloli
1
Ceci est pour Mac uniquement
plaisthos
0

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.logje vous donnerais la dernière fois. Vous pouvez soustraire cela de l'heure actuelle pour obtenir des secondes depuis le dernier réveil.

Paul
la source
0

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é.

teika kazura
la source
0

Vous pouvez utiliser tuptime pour suivre la durée de vie de démarrage / arrêt du système.

Rfraile
la source
Ne fournit pas les informations demandées par le PO.
wieczorek1990
0

É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.

thethakuri
la source
0

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

Jay Day Zee
la source
0

Aucune de ces réponses n'a fonctionné pour moi. Mais j'ai trouvé utilement sleep.targetce 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.
odinho - Velmont
la source
-1

sur fedora en utilisant ripgrep

rg Suspend /var/log/messages

résultat:

34338:Jul 26 03:03:46 <hostname> systemd-sleep: Suspending system...
illucent
la source