Jak znaleźć czas przestoju od ostatniego budzenia ze stanu gotowości

29

Chcę poznać czas działania od ostatniego budzenia ze stanu gotowości.

Polecenie uptimepokazuje tylko różnicę między bieżącym czasem minus ostatni czas uruchomienia.

użytkownik debian
źródło

Odpowiedzi:

30

W /var/log/pm-suspend.logposzukaj ostatniej linii wyglądającej tak:

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

To twój ostatni czas budzenia. Możesz obliczyć swój czas pracy od tego czasu, tak jak sugerował Paul.

Okresowo logrotatebędziesz „obracać” logi, aby zapobiec ich zbyt dużemu powiększeniu, więc możesz znaleźć pusty pm-suspend.logplik. W takim przypadku po prostu poszukaj pm-suspend.log.1pliku (możesz również znaleźć inne pliki dziennika o nazwach podobnych pm-suspend.log.2.gzi tak dalej; możesz je sprawdzić za pomocą zcatlub zless).

kroki
źródło
to zadziałało dla mnie
Jacek Pietal
5
Co jeśli pm-suspend.logjest pusty? :(
cprn
1
Jeśli zależy Ci także na zawieszeniu znacznika czasu, użyj: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
Nie ma takiego pliku na moim komputerze (z systemem Ubuntu 16.04 LTS)
Ramon Suarez
Plik jest obecny tylko wtedy, gdy zainstalowano PM-Suspend. Ale na przykład Kubuntu przechodzi w stan zawieszenia również po zamknięciu notebooka. Następnie plik zawieszenia PM jest pusty.
dmatej
15

W przypadku komputerów stacjonarnych / serwerów z systemem systemd, chociaż nie ma bezpośredniego polecenia, które poinformuje informacje bezpośrednio (o ile mi wiadomo), wszystkie dane są przechwytywane w dzienniku.

Możesz grep czasopismo, na przykład:

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"

Lub, dla fantazyjnych wyników, napisałem skrypt python3 (działa dobrze na Fedorze 23) Przykładowy wynik:

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]

Skrypt znajduje się w github. link do repozytorium github

Ari
źródło
1
To działało dla mnie na Ubuntu 16.04
raphinesse
Dobrze wiedzieć, że możemy sprawdzić dziennik.
Shiplu Mokaddim
Użyj journalctl -b 0 -o short-iso MESSAGE="PM: Finishing wakeup." | tail -1 | cut -d" " -f1tylko na czas ostatniego
budzenia
13

Program PM-Suspend nie jest jedyną opcją zawieszenia komputera. Mój dziennik tego programu jest teraz pusty, ale znalazłem bardziej niezawodne polecenie:

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

Wyjście to:

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
źródło
1

zmodyfikowana lepsza weryfikacja odpowiedzi na kroki

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

edytuj haha ​​dzięki za komentarze: D

Jacek Pietal
źródło
I wygrałeś bezużyteczne wykorzystanie catpunktu!
gniourf_gniourf
Brak głosów pozytywnych za bezużyteczne użycie „kota”.
Magellan
1

Nie miałem PM-Suspend.log na moim komputerze.

To działało dla mnie:

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

Mówi także, co obudziło komputer. :-)

Mikrofon
źródło
1
Co jeśli nie pmsetznaleziono polecenia i nie ma takiego pliku jak pmseti pm-suspend.logjest pusty? :(
cprn
pm-suspend.logbrakowało i to działa dla mnie (na moim
iMacu
1
To jest tylko dla komputerów Mac
plaisthos
0

Czego używasz, aby zainicjować tryb gotowości?

Jeśli możesz użyć skryptu, to po wierszu

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

możesz mieć linię

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

Lub coś podobnego. Oznaczałoby to, że pierwszą rzeczą, którą zrobiła maszyna po przebudzeniu, było zapisanie bieżącej godziny i daty w pliku dziennika (n sekund od epoki).

Wtedy tail -1 /var/log/wakeups.logdałbym ci ostatni raz. Możesz odjąć to od bieżącego czasu, aby uzyskać sekundy od ostatniego budzenia.

Paweł
źródło
0

Wyszukaj ostatnie wystąpienie ciągu „PM: przywracanie urządzeń zakończone” w / var / log / messages. Jeśli jednak maszyna była zbyt długa, dziennik może zostać obrócony.

teika kazura
źródło
0

Za pomocą tuptime można śledzić czas uruchamiania / zamykania systemu.

Rfraile
źródło
Nie zawiera informacji wymaganych przez PO.
wieczorek1990
0

Odpowiedź „Rozszerzanie kroków”:

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

Spowoduje to wyświetlenie linii z ostatnim czasem budzenia.

thethakuri
źródło
0

Myślę, że to bardzo solidny sposób na zrobienie tego:

systemd[1]: Started Run anacron jobs at resume

Wyszukaj, kiedy system operacyjny uruchomi anakron, nastąpi, jednak urządzenie zostanie włączone

Jay Day Zee
źródło
0

Żadna z tych odpowiedzi nie działała dla mnie. Przydatnie jednak znalazłem, sleep.targetktóry jest stworzony właśnie do tego:

$ 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
źródło
-1

na fedorze przy użyciu ripgrep

rg Suspend /var/log/messages

wynik:

34338:Jul 26 03:03:46 <hostname> systemd-sleep: Suspending system...
ilucent
źródło