Como encontrar o tempo de atividade desde o último despertar do modo de espera

23

Eu quero saber o tempo de atividade desde o último despertar do modo de espera.

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

    
por debian user 14.11.2011 / 14:43

11 respostas

30

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

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

Esse é o seu último horário de despertar. Você pode calcular seu tempo de atividade desde então, como Paul sugeriu.

Periodicamente, seu logrotate "girará" os logs para evitar que eles fiquem muito grandes, portanto, você pode encontrar um arquivo pm-suspend.log vazio. Nesse caso, basta procurar o arquivo pm-suspend.log.1 (você também pode encontrar outros arquivos de log com nomes como pm-suspend.log.2.gz e assim por diante; você pode examiná-los usando zcat ou zless ).

    
por 16.12.2012 / 10:10
13

Para desktops / servidores executando o systemd, embora não haja nenhum comando direto que informe as informações diretamente (até onde eu saiba), todos os dados são capturados no diário.

Você pode usar 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 um resultado sofisticado, eu escrevi um script python3 (funciona bem no Fedora 23) Exemplo de saída:

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

    
por 23.01.2016 / 21:39
5

O programa pm-suspend não é a única opção para suspender o computador. Meu log deste programa 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.
    
por 03.10.2017 / 14:05
1

modificou melhor a verificação dos passos para responder

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

edite haha obrigado pelos comentários: D

    
por 26.06.2014 / 17:58
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. : -)

    
por 23.04.2015 / 17:30
0

Você pode usar tuptime para rastrear a vida de inicialização / desligamento do sistema.

    
por 12.03.2016 / 15:19
0

Estendendo a resposta das etapas:

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

Isto irá obter a linha com o último horário de ativação.

    
por 19.01.2015 / 06:02
0

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

systemd[1]: Started Run anacron jobs at resume

Procure quando o sistema operacional iniciar o anacron, mas a máquina será ligada

    
por 06.06.2018 / 18:26
0

O que você está usando para iniciar o modo de espera?

Se você puder usar um script, depois da linha

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

você pode ter a linha

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

Ou algo similar. Isso significaria que a primeira coisa que a máquina fez quando acordou 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.log te daria a última vez. Você poderia subtrair isso do tempo atual para obter segundos desde o último despertar.

    
por 15.11.2011 / 03:29
0

Pesquise a última ocorrência da cadeia "PM: restore of devices complete" em / var / log / messages. Se a sua máquina ficou muito tempo, o log pode ser girado.

    
por 30.05.2012 / 11:25
-1

no fedora usando o ripgrep

rg Suspend /var/log/messages

resultado:

34338:Jul 26 03:03:46 <hostname> systemd-sleep: Suspending system...
    
por 26.07.2017 / 18:58