2010-07-24 20:12:11 +0000 2010-07-24 20:12:11 +0000
40
40

Existe algum registo que registe as paragens no Linux?

Estava a pensar se existe um ficheiro de registo no Linux que regista cada vez que o computador é desligado?

A razão pela qual pergunto é porque estou a fazer alguns testes que envolvem quanto tempo dura a bateria do meu computador portátil sob certas condições. O meu portátil está configurado para se desligar automaticamente quando resta cerca de 10 minutos de energia da bateria, por isso se houver um ficheiro de registo algures que registe quando o computador é desligado, isto irá tornar os meus testes muito mais fáceis.

Estou a executar o Ubuntu 10.04. Obrigado!

Respostas (8)

29
29
29
2010-07-29 09:30:27 +0000

Que tal o comando last -x shutdown?

16
16
16
2010-07-24 21:43:43 +0000

O ficheiro /var/log/messages deveria realmente ter algo relacionado com as paragens, por exemplo o meu (CentOS 5) tem linhas como esta:

Jul 18 23:00:13 nero shutdown[2649]: shutting down for system halt
...
Jul 18 23:00:27 nero kernel: Kernel logging (proc) stopped.
Jul 18 23:00:27 nero kernel: Kernel log daemon terminating.

Verifique o seu /etc/syslog.conf ou /etc/rsyslog.conf ou equivalente para ter a certeza de que os registos estão a ir para lá. Provavelmente precisará de privilégios de raiz para ler os ficheiros de registo.

Além disso, embora não seja um encerramento em si, o comando “último” deve reportar reinícios.

Não há realmente nada nos registos por volta da última vez que se desligou?

Para os seus testes, tenha em mente que o seu computador só sabe que lhe restam 10 minutos por causa da informação que a bateria está a reportar, que pode ou não ser exacta. Em vez de esperar por interrupções, pode olhar directamente para a informação ACPI. No meu portátil, está aqui:

/proc/acpi/battery/BAT0/

Ali, os ficheiros “state” e “info” parecem interessantes. Poderá observar a capacidade restante no ficheiro de estado enquanto estiver a executar o seu portátil em várias condições para ver a rapidez com que ele cai.

5
5
5
2015-03-26 14:50:50 +0000

Primeiro, deixem-me começar por dizer que sei que este é um fio mais antigo. Apenas comento para que outros que encontrem isto enquanto espreitam pela rede (como eu fiz hoje) tenham uma resposta clara.

Segundo, note-se que o seguinte comando é uma má prática e cai na categoria “usos inúteis do gato” (pesquisa no google)…

cat /var/log/messages | grep "`LC_ALL=en_en.utf8 date +"%b %e"`"

Essa linha deve ser mudada para:

grep "`LC_ALL=en_en.utf8 date +"%b %e"`" /var/log/messages

grep, e a maioria dos comandos unix/linux (sed, awk, etc…) para esse efeito não requerem que o gato leia o conteúdo de um ficheiro. É suficiente colocar o caminho e o nome do ficheiro após o comando para o passar como argumento. Adicionar um cano e outro comando externo (cat) é apenas perda de tempo e recursos.

Finalmente, Quanto a onde encontrar um registo de paragens e/ou reinicializações do sistema, use o último comando, pois é exactamente para isso que ele se destina. Lê o ficheiro de registo /var/log/wtmp para todas as entradas de login/logout. Uma vez que as paragens e reinicializações são na realidade um evento de login/logout ao nível do sistema, são registadas aqui. O mesmo se aplica ao encerramento da consola raiz, trata-se de um evento de logout.

Exemplo:

last -5 reboot shutdown root

Isto dar-lhe-á as últimas 5 entradas de reinicialização, encerramento, e root (encerramento da consola incluído) no log wtmp.

Resultado:

reboot ~ Mon Mar 23 14:51
shutdown ~ Mon Mar 23 14:49
root console Mon Mar 23 14:49 - shutdown (00:00)
reboot ~ Mon Mar 16 09:54
shutdown ~ Thu Mar 12 17:41

Espero que isto ajude quem tropeçar neste fio. :-)

4
4
4
2010-07-24 20:16:46 +0000

O ficheiro /var/log/messages deve conter esta informação

2
2
2
2010-07-25 01:22:07 +0000

se quiser manter um registo de quanto tempo o seu computador esteve ligado no passado, pode usar algo como “uptimeed”.

vem com um programa chamado uprecords que lhe mostra há quanto tempo o seu computador está ligado.

1
1
1
2017-01-19 18:02:30 +0000

last reboot trabalhou para mim no CentOS 6.7.

Para mostrar o ano na produção, por isso faz realmente sentido se tiver mais de um ano de registos, faça

last -F reboot

Apesar de perceber que o interruptor -F não funciona em alguns sistemas, como o Solaris. Mas aparentemente faz parte do último do GNU.

Graças a https://unix.stackexchange.com/a/97597/174520

1
1
1
2014-05-07 13:52:00 +0000

Aqui está uma lista de uma linha para listar todas as mensagens do dia actual:

cat /var/log/messages | grep "`LC_ALL=en_en.utf8 date +"%b %e"`"

Isto foi testado no CentOS então YMMV.

E claro que há last reboot e last shutdown (como mencionado), mas isto é demasiado simples para as minhas necessidades (apenas fornece datas).

0
0
0
2010-07-24 21:15:36 +0000

se não houver registo, pode tentar adicionar algum ‘date >>mylog’ ao script de encerramento (em alguns discos, chama-se rc.shutdown)

ou,há também uma forma sem necessidade de prevenção. correr:

while [1];do sleep 5;date>mylog;sync;done

e mylog de cauda na próxima sessão.