So finden Sie die Betriebszeit seit dem letzten Aufwachen aus dem Standby


28

Ich möchte die Betriebszeit seit dem letzten Aufwachen aus dem Standby kennen.

Der Befehl uptimezeigt nur die Differenz zwischen der aktuellen Zeit minus der letzten Startzeit an.

Antworten:


30

In /var/log/pm-suspend.log, suchen Sie nach der letzten Zeile wie diese suchen:

Sun Dec 16 09:30:31 CET 2012: Awake.

Das ist deine letzte Weckzeit. Sie können Ihre Betriebszeit seitdem auf die von Paul vorgeschlagene Weise berechnen.

In regelmäßigen Abständen logrotatewerden die Protokolle "gedreht", um zu verhindern, dass sie zu groß werden, sodass Sie möglicherweise eine leere pm-suspend.logDatei finden. pm-suspend.log.1Suchen Sie in diesem Fall einfach nach der Datei (möglicherweise finden Sie auch andere Protokolldateien mit dem Namen "Gefällt pm-suspend.log.2.gzmir" usw.; Sie können sie mit zcatoder überprüfen zless).


das hat bei mir funktioniert
Jacek Pietal

5
Was ist, wenn pm-suspend.logleer ist? :(
cprn

1
Wenn Sie auch Zeitstempel aussetzen möchten, verwenden Sie: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
Keine solche Datei auf meinem Computer (mit Ubuntu 16.04 LTS)
Ramon Suarez

Die Datei ist nur vorhanden, wenn Sie pm-suspend installiert haben. Aber zum Beispiel geht Kubuntu auch nach dem Schließen des Notebooks in den Suspend-Zustand. Dann ist die pm-suspend-Datei leer.
dmatej

15

Bei Desktops / Servern, auf denen systemd ausgeführt wird, werden alle Daten im Journal erfasst, obwohl es keinen direkten Befehl gibt, der die Informationen direkt mitteilt (soweit mir bekannt ist).

Sie können das Tagebuch wie folgt durchsuchen:

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"

Oder ich habe ein Python3-Skript geschrieben (läuft gut unter Fedora 23). Beispielausgabe:

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]

Das Skript ist in Github. Link zu Github Repo


1
Dies funktionierte für mich auf Ubuntu 16.04
Raffinesse

Gut zu wissen, dass wir das Tagebuch überprüfen können.
Shiplu Mokaddim

Verwenden Sie journalctl -b 0 -o short-iso MESSAGE="PM: Finishing wakeup." | tail -1 | cut -d" " -f1nur für die Zeit der letzten Wakeup
raphinesse

11

Das Programm pm-suspend ist nicht die einzige Möglichkeit, den Computer anzuhalten. Mein Protokoll dieses Programms ist jetzt leer, aber ich habe einen zuverlässigeren Befehl gefunden:

cat /var/log/syslog | grep 'systemd-sleep' | grep "Suspending\|resumed"

Und die Ausgabe ist:

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.

1

Geänderte bessere Überprüfung der Schritte Antwort

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

edit haha ​​danke für die kommentare: D


Und Sie haben eine nutzlose catPunktverwendung gewonnen!
gniourf_gniourf

Keine Gegenstimmen für den nutzlosen Gebrauch von 'cat'.
Magellan

1

Ich hatte keine pm-suspend.log auf meinem Computer.

Das hat bei mir funktioniert:

/usr/bin/pmset -g log | grep Wake | grep "due to" | tail -n1

Sagt auch, was den Computer aufgeweckt hat. :-)


1
Was ist, wenn kein Befehl pmsetgefunden wird und keine Datei wie pmsetund pm-suspend.logleer ist? :(
cprn

pm-suspend.logfehlte und dies funktioniert für mich (auf meinem iMac)
Dayuloli

Dies ist nur für Mac
plaisthos

0

Womit initiieren Sie den Standby?

Wenn Sie ein Skript verwenden können, dann nach der Zeile

echo -n "standby" > /proc/acpi/sleep

Du könntest die Leitung haben

echo `date +%s` >> /var/log/wakeups.log

Oder etwas ähnliches. Dies würde bedeuten, dass die Maschine beim Aufwachen als erstes die aktuelle Uhrzeit und das aktuelle Datum in eine Protokolldatei schreibt (n Sekunden seit der Epoche).

Dann tail -1 /var/log/wakeups.loggib dir das letzte mal. Sie können dies von der aktuellen Zeit subtrahieren, um die Sekunden seit dem letzten Aufwecken zu erhalten.


0

Suchen Sie nach dem letzten Vorkommen der Zeichenfolge "PM: Wiederherstellung der Geräte abgeschlossen" in / var / log / messages. Wenn Ihr Computer zu lange in Betrieb war, wird das Protokoll möglicherweise gedreht.



0

Erweitere Schritte Antwort:

grep Awake /var/log/pm-suspend.log | tail -1

Dies wird die Zeile mit der letzten Aufweckzeit erhalten.


0

Ich denke, das ist ein sehr solider Weg, um es zu tun:

systemd[1]: Started Run anacron jobs at resume

Suchen Sie nach, wann das Betriebssystem anacron gestartet wird. Dies geschieht jedoch, wenn der Computer eingeschaltet ist


-1

auf Fedora mit Ripgrep

rg Suspend /var/log/messages

Ergebnis:

34338:Jul 26 03:03:46 <hostname> systemd-sleep: Suspending system...
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.