Як знайти тривалість часу після останнього пробудження з режиму очікування


29

Я хочу знати час роботи з останнього пробудження в режимі очікування.

Команда uptimeпоказує лише різницю між поточним часом мінус останнім часом запуску.

Відповіді:


30

В /var/log/pm-suspend.log, зверніть увагу на останній рядок , дивлячись , як це:

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

Це ваш останній час пробудження. З тих пір ви можете обчислити час своєї роботи, як запропонував Павло.

Періодично ваші журнали logrotateбудуть «обертати», щоб запобігти зростанню їх занадто великих розмірів, тому ви можете знайти порожній pm-suspend.logфайл. У цьому випадку просто шукайте pm-suspend.log.1файл (ви можете також знайти інші файли журналу з назвою "подібні" pm-suspend.log.2.gzі т. Д .; ви можете їх вивчити за допомогою zcatабо zless).


це працювало для мене
Jacek Pietal

5
Що робити, якщо pm-suspend.logпорожній? :(
cprn

1
Якщо ви також 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
турбуєтесь

2
На моєму комп’ютері такого файлу немає (працює Ubuntu 16.04 LTS)
Рамон Суарес

Файл присутній лише в тому випадку, якщо ви встановили pm-suspend. Але, наприклад, Kubuntu переходить у призупинений стан також після того, як я закрию ноутбук. Потім файл pm-призупинення порожній.
dmatej

15

Для настільних ПК / серверів, на яких працює systemd, хоча немає жодної прямої команди, яка безпосередньо повідомляє інформацію (наскільки я знаю), всі дані фіксуються в журналі.

Ви можете привітати журнал, наприклад:

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"

Або для фантазійного виводу я написав сценарій python3 (працює нормально на Fedora 23) Зразок виводу:

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]

Сценарій знаходиться в github. посилання на github repo


1
Це працювало для мене на Ubuntu 16.04
raphinesse

Приємно знати, що ми можемо перевірити журнал.
Шиплу Мокаддім

Використовуйте journalctl -b 0 -o short-iso MESSAGE="PM: Finishing wakeup." | tail -1 | cut -d" " -f1лише час останнього пробудження
raphinesse

13

Програма вечірнього призупинення - не єдиний варіант, як призупинити роботу комп'ютера. Мій журнал цієї програми тепер порожній, але я знайшов більш надійну команду:

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

А вихід:

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

модифіковані кращі варіанти відповіді кроків

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

редагувати ха-ха, дякую за коментарі: D


І ви виграли марне використання catточки!
gniourf_gniourf

Немає грошей на марне використання "кота".
Магеллан

1

У мене не було pm-suspend.log на своїй машині.

Це працювало для мене:

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

Також говорить, що розбудив комп'ютер. :-)


1
Що робити, якщо не pmsetзнайдено жодної команди та такого файлу, як pmsetі pm-suspend.logпорожній? :(
cprn

pm-suspend.logбракувало, і це працює для мене (на моєму iMac)
dayuloli

1
Це лише для Mac
plaisthos

0

Що ви використовуєте для запуску режиму очікування?

Якщо ви можете використовувати сценарій, то після рядка

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

ви могли мати лінію

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

Або щось подібне. Це означатиме, що перше, що зробила машина, коли прокинулася, - це записати поточний час і дату в журнальний файл (n секунд з епохи).

Тоді tail -1 /var/log/wakeups.logб тобі дали останній раз. Ви можете відняти це від поточного часу, щоб отримати секунди з моменту останнього пробудження.


0

Пошук останнього виникнення рядка "PM: відновлення пристроїв завершено" в / var / log / messages. Якщо ваша машина стояла занадто довго, то, можливо, журнал може бути повернутий.



0

Розширення відповіді кроків:

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

Це отримає лінію з останнім часом пробудження.


0

Я думаю, що це дуже солідний спосіб зробити це:

systemd[1]: Started Run anacron jobs at resume

Пошук, коли ОС запускається анакрон, буде відбуватися, проте машина включена


0

Жодна з цих відповідей не працювала для мене. Але я корисно знайшов, sleep.targetщо зроблено саме для цього:

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

-1

на Fedora за допомогою ripgrep

rg Suspend /var/log/messages

результат:

34338:Jul 26 03:03:46 <hostname> systemd-sleep: Suspending system...
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.