Como encontrar o tempo de atividade desde a última ativação do modo de espera


29

Quero saber o tempo de atividade desde a última ativação do modo de espera.

O comando uptimemostra apenas a diferença entre o horário atual menos o último horário de inicialização.

Respostas:


30

Em /var/log/pm-suspend.log, procure a última linha parecida com esta:

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

Essa é a sua última hora de despertar. Você pode calcular seu tempo de atividade desde então, da maneira que Paulo sugeriu.

Periodicamente, você logrotate"girará" os logs para impedir que eles fiquem muito grandes; portanto, você poderá encontrar um pm-suspend.logarquivo vazio . Nesse caso, basta procurar o pm-suspend.log.1arquivo (você também pode encontrar outros arquivos de log com o nome like pm-suspend.log.2.gze assim por diante; você pode examiná-los usando zcatou zless).


Isso funcionou para mim
Jacek Pietal

5
E se pm-suspend.logestiver vazio? :(
CPRN

1
Se você também se preocupa com a suspensão do carimbo de data e hora, use: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 5/16

2
Não existe tal arquivo no meu computador (rodando Ubuntu 16.04 LTS)
Ramon Suarez

O arquivo está presente apenas se você instalou o pm-suspend. Mas, por exemplo, o Kubuntu também fica em estado suspenso depois de fechar o notebook. Em seguida, o arquivo pm-suspende está vazio.
dmatej

15

Para desktops / servidores executando systemd, embora não exista um comando direto que informe as informações diretamente (tanto quanto eu saiba), todos os dados são capturados no diário.

Você pode cumprimentar o diário, por exemplo:

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"

Ou, para uma saída sofisticada, escrevi um script python3 (funciona bem no 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]

O script está no github. link para o repositório do github


1
Isso funcionou para mim no Ubuntu 16.04
raphinesse

É bom saber que podemos verificar o diário.
Shiplu Mokaddim

Use journalctl -b 0 -o short-iso MESSAGE="PM: Finishing wakeup." | tail -1 | cut -d" " -f1apenas o momento da última ativação
raphinesse

13

O programa pm-suspend não é a única opção de como suspender o computador. Meu log deste programa agora está vazio, mas eu encontrei um comando mais confiável:

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

E a saída é:

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

melhor versão modificada das etapas resposta

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

editar haha ​​obrigado pelos comentários: D


E você ganhou um uso inútil de catponto!
gniourf_gniourf

Não há votos positivos para o uso inútil de 'gato'.
Magellan

1

Eu não tinha pm-suspend.log na minha máquina.

Isso funcionou para mim:

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

Também diz o que acordou o computador. :-)


1
E se não houver nenhum comando pmsetencontrado e nenhum arquivo como pmsete pm-suspend.logestiver vazio? :(
CPRN

pm-suspend.logestava faltando e isso funciona para mim (no meu iMac)
dayuloli

1
Isto é somente para Mac #
plaisthos

0

O que você está usando para iniciar a espera?

Se você pode usar um script, depois da linha

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

você poderia ter a linha

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

Ou algo parecido. Isso significaria que a primeira coisa que a máquina fez ao acordar foi gravar a hora e a data atuais em um arquivo de log (n segundos desde a época).

Então tail -1 /var/log/wakeups.logdaria a você a última vez. Você pode subtrair isso do horário atual para obter segundos desde a última ativação.


0

Procure a última ocorrência da cadeia "PM: restauração de dispositivos concluída" em / var / log / messages. Se a sua máquina estiver em funcionamento por muito tempo, o registro poderá ser girado.



0

Resposta das etapas de extensão:

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

Isso entrará na linha com a última hora de ativação.


0

Eu acho que essa é uma maneira muito sólida de fazer isso:

systemd[1]: Started Run anacron jobs at resume

Procurar quando o sistema operacional iniciar o anacron, ocorrerá no entanto a máquina estiver ligada


0

Nenhuma dessas respostas funcionou para mim. Mas eu achei útil o sleep.targetque é feito exatamente para isso:

$ 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

no fedora usando ripgrep

rg Suspend /var/log/messages

resultado:

34338:Jul 26 03:03:46 <hostname> systemd-sleep: Suspending system...
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.