Как найти время работы с момента последнего пробуждения из режима ожидания

10506
debian user

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

Команда uptimeпоказывает только разницу между текущим временем и минусом времени последнего запуска.

23

11 ответов на вопрос

30
steps

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

это сработало для меня Prozi 9 лет назад 0
Что если `pm-suspend.log` пуст? :( cprn 8 лет назад 4
Если вам также нужна временная метка приостановки, используйте: `cat /var/log/pm-suspend.log /var/log/pm-suspend.log.1 | grep -B1 Awake; эхо "-"; zcat /var/log/pm-suspend.log.*.gz | grep -B1 Awake` webbertiger 7 лет назад 1
На моем компьютере такого файла нет (работает Ubuntu 16.04 LTS) Ramon Suarez 6 лет назад 1
Файл присутствует, только если вы установили pm-suspend. Но, например, Kubuntu переходит в состояние ожидания также после того, как я закрываю ноутбук. Тогда файл pm-suspend пуст. dmatej 6 лет назад 0
13
Ari

Для настольных компьютеров / серверов, работающих под управлением 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

Это работало для меня на Ubuntu 16.04 raphinesse 8 лет назад 0
Приятно знать, что мы можем проверить журнал. Shiplu Mokaddim 7 лет назад 0
Используйте `journalctl -b 0 -o short-iso MESSAGE =" PM: Завершение пробуждения. " | хвост -1 | cut -d "" -f1` только для времени последнего пробуждения raphinesse 7 лет назад 0
5
dmatej

Программа pm-suspend - не единственная возможность приостановить работу компьютера. Мой журнал этой программы теперь пуст, но я нашел более надежную команду:

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
Prozi

изменен лучший вариант ответа шага

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

редактировать хаха спасибо за комментарии: D

И вы выиграли бесполезное использование «кошачьих очков»! gniourf_gniourf 9 лет назад 0
Нет голосов за бесполезное использование «кошка». Magellan 9 лет назад 0
1
Mike

У меня не было pm-suspend.log на моей машине.

Это сработало для меня:

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

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

Что если не найдена команда `pmset` и нет таких файлов, как` pmset` и `pm-suspend.log`? :( cprn 8 лет назад 1
«pm-suspend.log» отсутствовал, и это работает для меня (на моем iMac) dayuloli 8 лет назад 0
Это только для Mac plaisthos 6 лет назад 0
0
Paul

Что вы используете для запуска в режиме ожидания?

Если вы можете использовать скрипт, то после строки

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

Вы могли бы иметь линию

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

Или что-то подобное. Это будет означать, что первым делом, когда машина проснулась, было записать текущее время и дату в файл журнала (n секунд с начала эпохи).

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

0
teika kazura

Найдите последнее вхождение строки «PM: восстановление устройств завершено» в / var / log / messages. Если ваша машина работала слишком долго, тогда журнал может быть повернут.

0
thethakuri

Extending Steps answer:

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

This will get the line with the last wakeup time.

0
Rfraile

You can use tuptime for track the system startup/shutdown life.

Не предоставляет информацию, запрошенную ОП. wieczorek1990 7 лет назад 0
0
Jay Day Zee

Я думаю, что это очень надежный способ сделать это:

systemd[1]: Started Run anacron jobs at resume

Поиск, когда ОС запускает Anacron, произойдет, однако машина включена