Como verifico se o último desligamento foi limpo?

23

Como saber se meu último desligamento foi realizado corretamente no Ubuntu 11.10 ou se a máquina foi desligada antes de desligar o sistema operacional?

Vikramjeet
fonte
2
Dê uma olhada em /var/log/syslog.0
Gigili

Respostas:

23

Se a máquina foi desligada corretamente, deve haver um kern.logarquivo de log de desligamento no /var/log diretório. Após um desligamento sempre que ocorre uma inicialização normal, o sistema operacional grava o log para o mesmo no kern.log. Portanto, todo log de inicialização deve ser precedido por um log de desligamento, se o processo de inicialização e desligamento for normal.

Sempre que ocorre um desligamento normal, "Kernel logging (proc) stopped."é gravado no kern.log. Da mesma forma, sempre que ocorre uma inicialização,"imklog 5.8.1, log source = /proc/kmsg started." é gravado no kern.log

Essas duas mensagens devem estar na ordem se o desligamento for normal em vez de desligamento abrupto. Não deve haver " imklog 5.8.1, origem do log = / proc / kmsg iniciado. " Sem a mensagem " Kernel logging (proc) interrompida " . ) Se o desligamento anterior foi normal. As duas mensagens sempre devem ocorrer em pares no log.insira a descrição da imagem aqui

Basta digitar o terminal: -

gedit /var/log/kern.log

e verifique os pares de desligamento e log de inicialização. Se eles não forem encontrados em pares em nenhum lugar, esse desligamento deve ter sido abrupto.

Vikramjeet
fonte
1
substitua o gedit pelo seu editor de texto padrão.
Vikramjeet 28/02/2012
minha kern.log está vazia
Nade
1
@Nade try kern.log.1.
um ben diferente
2
nenhuma dessas frases está no meu log. Nem mesmo parte deles. Eu realmente preciso saber se o computador está sendo desligado corretamente porque acredito que tenho um garoto que está simplesmente pressionando o botão liga / desliga.
KI4JGT
a partir do Ubunutu 16.04, isso não parece mais correto. ou seja, eu não recebo cat /var/log/syslog | grep -i "stopped"(e similar. também testou a sanidade pelo contrário), apesar de isso claramente fazer parte das mensagens de desligamento anteriores ... (o material visível do log, ao pressionar ESC para matar a tela inicial enquanto desligava) - alguém recebeu uma atualização?
precisa
4

A partir do Ubuntu 16.04, um desligamento limpo seguido de uma reinicialização adequada gravará essas duas linhas uma após a outra em / var / log / syslog

Mar  9 14:14:06 *YOUR-HOSTNAME* rsyslogd: [origin software="rsyslogd" swVersion="8.16.0" x-pid="1086" x-info="http://www.rsyslog.com"] exiting on signal 15.
Mar  9 15:23:42 *YOUR-HOSTNAME* rsyslogd: [origin software="rsyslogd" swVersion="8.16.0" x-pid="1069" x-info="http://www.rsyslog.com"] start
Victorvg
fonte
0

Oi, você pode executar um script para verificar se o último desligamento foi adequado ou não. Basta colocar as seguintes linhas em um script bash e executá-lo após a inicialização do sistema.

#!/bin/bash
B="1"
touch data_file
echo $(($(grep -nr "$(cat  /var/log/kern.log | grep "$(date -d $(who -b | awk '{printf $3}') '+%b %-d')" | grep imklog   | grep $(cat  /var/log/kern.log | grep "$(date -d $(who -b | awk '{printf $3}') '+%b %-d')" | grep imklog | cut -d' ' -f3 | sort -k1 -r | sort --unique --stable -k2,3))" /var/log/kern.log | awk '{printf $1}' | grep -oE "[[:digit:]]{1,}")-$B))  >  data_file


if [[

($(sed -n $(cat data_file)p /var/log/kern.log | awk '{print $6}') == "Kernel") && 
($(sed -n $(cat data_file)p /var/log/kern.log | awk '{print $7}') == "logging") &&
($(sed -n $(cat data_file)p /var/log/kern.log | awk '{print $8}') == "(proc)") &&
($(sed -n $(cat data_file)p /var/log/kern.log | awk '{print $9}') == "stopped.") 


]]; then

  echo Last Shutdown-proper

else

   echo Last Shutdown_not proper 

fi

rm data_file

NOTA: Por favor, esteja em um usuário root para executar o script. Não irá prejudicar o seu sistema :)

Sid
fonte