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.

Debian-Benutzer
quelle

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

Schritte
quelle
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

Ari
quelle
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.
dmatej
quelle
1

Geänderte bessere Überprüfung der Schritte Antwort

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

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

Jacek Pietal
quelle
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. :-)

Mike
quelle
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.

Paul
quelle
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.

teika kazura
quelle
0

Sie können die Wartezeit verwenden, um die Lebensdauer des Systemstarts / Herunterfahrens zu verfolgen.

Rfraile
quelle
Bietet nicht die Informationen, die das OP angefordert hat.
wieczorek1990
0

Erweitere Schritte Antwort:

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

Dies wird die Zeile mit der letzten Aufweckzeit erhalten.

thethakuri
quelle
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

Jay Day Zee
quelle
-1

auf Fedora mit Ripgrep

rg Suspend /var/log/messages

Ergebnis:

34338:Jul 26 03:03:46 <hostname> systemd-sleep: Suspending system...
illuzent
quelle