Como o conteúdo do dmesg pode ser registrado em um arquivo?

18

Estou executando um sistema operacional Linux que foi criado do zero. Gostaria de salvar o buffer de mensagem do kernel (dmesg) em um arquivo que permanecerá persistente entre as reinicializações.

Eu tentei executar o syslogd mas ele apenas abriu um novo arquivo de log, / var / log / messages, sem o buffer de mensagem do kernel existente, nem nenhuma nova mensagem gerada pelo kernel após o lançamento do syslogd.

Como o buffer de mensagem do kernel pode ser salvo em um arquivo de log persistente?

    
por miluz 03.09.2013 / 10:09

3 respostas

16

Você precisa ver /etc/rsyslog.conf ou /etc/syslog.conf . Se você tem uma linha no início, como:

*.*                -/var/log/syslog

Tudo, incluindo o material do dmesg, deve ir para esse arquivo. Para segmentar melhor:

kernel.*           -/var/log/dmesg

Se isso falhar por algum motivo, você poderá periodicamente (por exemplo, via cron):

dmesg > /var/log/dmesg

Dependendo de quão grande é o buffer do dmesg (isso é compilado no kernel, ou configurado através do parâmetro log_buf_len ) e há quanto tempo o sistema está ativo, ele manterá um registro do log do kernel desde que ele foi iniciado.

Se você quiser gravar a saída do dmesg continuamente para um arquivo, use o sinalizador -w (--follow).

dmesg --follow > mydmesg.log
    
por 03.09.2013 / 10:58
3

Se você usar systemd , poderá obter todas as informações do diário systemd usando journalctl -k . syslog e rsyslog não são necessários se você usar o systemd.

    
por 10.11.2014 / 13:59
0

PopSicle faz isso Eu uso o antigo redirecionamento de msdos e ele é redigido em um arquivo .csv que é aberto em uma planilha pelo LibreOffice Calc no terminal tente algo parecido com isto

dmesg > /path to where you want the file written/File-Name.csv 
dmesg > /media/joe/Data/Z-Back/Script-Files/Dmesg-Output.csv 

echo "Dmesg-to-CSV.sh"" the script file"

#!/bin/bash
echo "This is a shell script"  
SOMEVAR='I am done running dmesg and redirecting to /media/joe/Data/B-Back/Script-Files/Dmesg-Output.csv'  
echo "$SOMEVAR"  
dmesg > /media/joe/Data/Z-Back/Script-Files/Dmesg-Output.csv 

echo "Dmesg-CSV.desktop"" the icon file"

[Desktop Entry]
Encoding=UTF-8
Name=Dmesg-to-CSV.sh
Comment=Launch DirSyncPro
Exec=gnome-terminal -e /media/joe/Data/Z-Back/Script-Files/Dmesg-to-CSV.sh
Icon=utilities-terminal
Type=Application
Name[en_US]=Dmesg-CSV.desktop

echo "both the .sh file and .desktop file are stored in the same directory as the .csv output file"
    
por 28.11.2015 / 03:00