Existe um log que registra o desligamento no Linux?

30

Eu queria saber se existe um arquivo de log no Linux que grava toda vez que o computador é desligado?

A razão pela qual estou perguntando é que estou fazendo alguns testes envolvendo quanto tempo a bateria do meu laptop dura sob certas condições. Meu laptop está configurado para desligar automaticamente quando restam cerca de 10 minutos de energia da bateria, portanto, se houver um arquivo de log em algum lugar que registre quando o computador estiver desligado, isso tornará meu teste muito mais fácil.

Estou executando o Ubuntu 10.04. Obrigado!

    
por Michael 24.07.2010 / 22:12

8 respostas

9

O arquivo /var/log/messages deve ter algo relacionado a shutdowns, 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 seu /etc/syslog.conf ou /etc/rsyslog.conf ou equivalente para ter certeza de que os logs estão sendo enviados para lá. Você provavelmente precisará de privilégios de root para ler os arquivos de log.

Além disso, embora não seja um desligamento por si só, o comando "last" deve relatar reinicializações.

Existe realmente nada nos logs na última vez que você desligou?

Para o teste, lembre-se de que seu computador só sabe que ainda restam 10 minutos por causa das informações que a bateria está relatando, o que pode ou não ser preciso. Em vez de esperar por desligamentos, você pode examinar diretamente as informações da ACPI. No meu laptop está aqui:

/proc/acpi/battery/BAT0/

Lá, os arquivos "state" e "info" parecem interessantes. Você pode observar a capacidade restante no arquivo de estado enquanto estiver executando seu laptop sob várias condições para ver a velocidade da queda.

    
por 24.07.2010 / 23:43
23

Que tal o comando last -x shutdown ?

    
por 29.07.2010 / 11:30
5

Primeiro, deixe-me começar dizendo que sei que este é um tópico mais antigo. Eu só comento para que outros que encontrarem isto enquanto estiverem bisbilhotando a rede (como eu fiz hoje) terão uma resposta clara.

Em segundo lugar, observe que o comando a seguir é uma prática ruim e se enquadra na categoria "usos inúteis do gato" (pesquisa do google por ele) ...

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

Essa linha deve ser alterada para:

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

grep, e a maioria dos comandos unix / linux (sed, awk, etc ...) não requerem que o cat leia o conteúdo de um arquivo. É suficiente colocar o caminho e o nome do arquivo após o comando para passá-lo como um argumento. Adicionar um pipe e outro comando externo (cat) é apenas um desperdício de tempo e recursos.

Finalmente, sobre onde encontrar um registro de desligamentos do sistema e / ou reinicializações, use o último comando como é exatamente para isso. Ele lê o arquivo de log / var / log / wtmp para todas as entradas de login / logout. Como os desligamentos e reinicializações são, na verdade, um evento de login / logout no nível do sistema, eles são registrados aqui. O mesmo se aplica ao desligamento do console raiz, é um evento de logout.

Exemplo:

last -5 reboot shutdown root

Isso lhe dará as últimas 5 entradas de reinicialização, desligamento e raiz (desligamento do console incluído) no log do 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 isso ajude alguém que se deparar com este tópico. : -)

    
por 26.03.2015 / 15:50
4

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

    
por 24.07.2010 / 22:16
2

Se você quiser acompanhar quanto tempo seu computador esteve no passado, poderá usar algo como um atraso.

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

    
por 25.07.2010 / 03:22
1

Aqui está um one-liner para listar todas as mensagens do dia atual:

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

Isso foi testado no CentOS, então YMMV.

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

    
por 07.05.2014 / 15:52
1

last reboot funcionou para mim no CentOS 6.7.

Para mostrar o ano na saída, então realmente faz sentido se você tiver mais de um ano de registros, faça

last -F reboot

Embora eu saiba que a opção -F não funciona em alguns sistemas, como o Solaris. É aparentemente parte do último do GNU, no entanto.

Graças ao link

    
por 19.01.2017 / 19:02
0

se nenhum log estiver presente, você pode tentar adicionar algum 'date > > mylog' ao script de desligamento (em alguns dists, ele é chamado rc.shutdown)

ou, também há uma maneira sem necessidade de previlage. executar:

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

e siga o meu blog na próxima sessão.

    
por 24.07.2010 / 23:15

Tags