Quero saber o tempo de atividade desde a última ativação 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.
Quero saber o tempo de atividade desde a última ativação 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.
Respostas:
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.log
arquivo vazio . Nesse caso, basta procurar o pm-suspend.log.1
arquivo (você também pode encontrar outros arquivos de log com o nome like pm-suspend.log.2.gz
e assim por diante; você pode examiná-los usando zcat
ou zless
).
pm-suspend.log
estiver vazio? :(
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
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
journalctl -b 0 -o short-iso MESSAGE="PM: Finishing wakeup." | tail -1 | cut -d" " -f1
apenas o momento da última ativação
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.
melhor versão modificada das etapas resposta
grep ': Awake' /var/log/pm-suspend.log
editar haha obrigado pelos comentários: D
cat
ponto!
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. :-)
pmset
encontrado e nenhum arquivo como pmset
e pm-suspend.log
estiver vazio? :(
pm-suspend.log
estava faltando e isso funciona para mim (no meu iMac)
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.log
daria a você a última vez. Você pode subtrair isso do horário atual para obter segundos desde a última ativação.
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.
Você pode usar o tempo de inicialização para rastrear a vida útil do sistema / inicialização.
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.
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
Nenhuma dessas respostas funcionou para mim. Mas eu achei útil o sleep.target
que é 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.