Existe um log que registra desligamentos no Linux?


38

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

A razão pela qual estou perguntando é que estou fazendo alguns testes envolvendo a duração da bateria do meu laptop em determinadas 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 for desligado, isso facilitará muito meus testes.

Estou executando o Ubuntu 10.04. Obrigado!

Respostas:


15

O /var/log/messagesarquivo realmente deve ter algo relacionado a desligamentos, 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.confou /etc/rsyslog.confequivalente para garantir que os logs estejam indo 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 em si, o comando "last" deve relatar reinicializações.

Não há realmente nada nos logs na última vez em que você desligou?

Para o seu teste, lembre-se de que o seu computador sabe que só restam 10 minutos devido às informações que a bateria está relatando, que podem ou não ser precisas. Em vez de esperar por desligamentos, você pode olhar diretamente para 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 o laptop sob várias condições para ver a rapidez com que ele cai.


3
A menos que eu esteja sentindo falta, não vejo nenhum tipo de mensagem "desligando" em / var / log / messages. A mensagem "Registro do kernel (proc) parado" às vezes aparece, mas nem sempre. No entanto, a execução last -xfunciona. Este comando exibe uma linha semelhante à seguinte: shutdown system down 2.6.32-23-generi Sun Jul 25 09:12 - 19:00 (-14815+-13: Obrigado pela dica de informações da bateria. Meu sistema também tem isso, então terei que verificar isso! Parece atualizar esses arquivos a cada 5 segundos ou mais. Obrigado!
Michael

Obrigado novamente. Meus resultados estão aqui: mangstacular.blogspot.com/2010/07/…
Michael


5

Primeiro, deixe-me dizer que sei que esse é um tópico mais antigo. Eu apenas comento para que outros que acham isso enquanto vasculhem a rede (como eu fiz hoje) tenham uma resposta clara.

Segundo, observe que o comando a seguir é uma prática ruim e se enquadra 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 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 exigem que o cat leia o conteúdo de um arquivo. É suficiente colocar o caminho do arquivo e o nome após o comando para passá-lo como argumento. Adicionar um pipe e outro comando externo (cat) é apenas desperdício de tempo e recursos.

Por fim, sobre onde encontrar um registro de desligamentos e / ou reinicializações do sistema, use o último comando, pois é exatamente para isso que ele se destina. Ele lê o arquivo de log / var / log / wtmp para todas as entradas de logon / logout. Como desligamentos e reinicializações são, na verdade, um evento de logon / 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 fornecerá 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 tropeça nesse tópico. :-)


Alternativamente, simplesmente last -xou last -F -R -x runlevel. Para fins de monitoramento de bateria no Ubuntu, grep hooks /var/log/pm-suspend.logtambém pode ser útil mostrar a suspensão e o currículo. Infelizmente, o pm-powersave.log não armazena os tempos em que a energia CA está conectada (a menos que você adicione seu próprio gancho). help.ubuntu.com/community/PowerManagement/ReducedPower pode valer uma leitura.
Cedric Cavaleiro

Em relação UUoC, $ time CPU << $ time cérebro ...
Mikep

11
Cada pessoa que menciona "usos inúteis de gato" provavelmente está gastando mais tempo para apontar o fato do que o tempo total da CPU gasto em usos inúteis de gato por todos os computadores da Terra (e às vezes eles desnecessariamente incham sua resposta agradável como efeito colateral - - como este)
ndemou 1/11/16

4

O arquivo / var / log / messages deve conter essas informações


Não vi nada nesse arquivo relacionado ao desligamento. :( Tentei fazer o grepping de todos os outros arquivos desse diretório usando o carimbo de data / hora do tempo em que desliguei o computador, mas não tive sorte:grep -r "Jul 24 14:" /var/log/*
Michael

O arquivo não existe no Linux Mint companheiro 17.
Eric Wang

2

se você quiser acompanhar por quanto tempo o seu computador está funcionando no passado, use algo como otimizado.

ele vem com um programa chamado gravações que mostram quanto tempo o seu computador está ligado.


1

Aqui está uma lista 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, portanto YMMV.

E é claro que existe last reboote last shutdown(como mencionado), mas isso é muito simples para minhas necessidades (apenas fornece datas).


1

last reboot trabalhou para mim no CentOS 6.7.

Para mostrar o ano na produção, faz sentido se você tiver mais de um ano de registros, faça

last -F reboot

Embora eu entenda que a opção -F não funciona em alguns sistemas, como o Solaris. Aparentemente, é parte do último do GNU.

Obrigado a https://unix.stackexchange.com/a/97597/174520


0

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

ou, também há um caminho sem predileção necessária. corre:

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

e siga mylog na próxima sessão.

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.