Voglio sapere il tempo di attività dall'ultima veglia dallo standby.
Il comando uptime
mostra solo la differenza tra l'ora corrente meno l'ultima ora di avvio.
Voglio sapere il tempo di attività dall'ultima veglia dallo standby.
Il comando uptime
mostra solo la differenza tra l'ora corrente meno l'ultima ora di avvio.
Risposte:
Nel /var/log/pm-suspend.log
look per l'ultima linea di ricerca come questa:
Sun Dec 16 09:30:31 CET 2012: Awake.
Questo è il tuo ultimo orario di sveglia. Puoi calcolare il tuo uptime da allora nel modo suggerito da Paul.
Periodicamente i logrotate
registri "ruoteranno" per impedire che diventino troppo grandi, quindi potresti trovare un pm-suspend.log
file vuoto . In questo caso, basta cercare il pm-suspend.log.1
file (è possibile trovare anche altri file di registro denominati like pm-suspend.log.2.gz
e così via; è possibile esaminarli utilizzando zcat
o zless
).
pm-suspend.log
fosse vuoto? :(
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
Per desktop / server che eseguono systemd, mentre non esiste un comando diretto che dirà direttamente le informazioni (per quanto ne so), tutti i dati vengono acquisiti nel diario.
Puoi grep il diario, ad esempio:
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"
Oppure, per un output sofisticato, ho scritto uno script python3 (funziona bene su Fedora 23) Output di esempio:
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]
La sceneggiatura è in github. collegamento al repository github
journalctl -b 0 -o short-iso MESSAGE="PM: Finishing wakeup." | tail -1 | cut -d" " -f1
solo per l'ora dell'ultimo risveglio
Il programma pm-suspend non è l'unica opzione su come sospendere il computer. Il mio registro di questo programma è ora vuoto, ma ho trovato un comando più affidabile:
cat /var/log/syslog | grep 'systemd-sleep' | grep "Suspending\|resumed"
E l'output è:
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.
modifica migliorata verifica della risposta dei passaggi
grep ': Awake' /var/log/pm-suspend.log
modifica ahah grazie per i commenti: D
cat
punto!
Non avevo pm-suspend.log sulla mia macchina.
Questo ha funzionato per me:
/usr/bin/pmset -g log | grep Wake | grep "due to" | tail -n1
Dice anche cosa ha svegliato il computer. :-)
pmset
trovato alcun comando e nessun file come pmset
e pm-suspend.log
è vuoto? :(
pm-suspend.log
mancava e questo funziona per me (sul mio iMac)
Cosa stai usando per avviare lo standby?
Se puoi usare uno script, dopo la riga
echo -n "standby" > /proc/acpi/sleep
potresti avere la linea
echo `date +%s` >> /var/log/wakeups.log
O qualcosa di simile. Ciò significherebbe che la prima cosa che la macchina ha fatto al suo risveglio è stata scrivere l'ora e la data correnti in un file di registro (n secondi dall'epoca).
Allora tail -1 /var/log/wakeups.log
ti darei l'ultima volta. Potresti sottrarlo dall'ora corrente per ottenere secondi dall'ultima sveglia.
Cerca l'ultima occorrenza della stringa "PM: restore of devices complete" in / var / log / messages. Se la macchina è rimasta su per troppo tempo, è possibile che il registro possa essere ruotato.
È possibile utilizzare tuptime per tenere traccia della durata di avvio / arresto del sistema.
Risposta dei passaggi estesi:
grep Awake /var/log/pm-suspend.log | tail -1
Questo otterrà la linea con l'ultimo orario di sveglia.
Penso che questo sia un modo molto solido per farlo:
systemd[1]: Started Run anacron jobs at resume
Cerca quando il sistema operativo avvia anacron, accadrà comunque la macchina è accesa
Nessuna di queste risposte ha funzionato per me. Ma ho utilmente trovato sleep.target
che è fatto esattamente per questo:
$ 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.