Jak można zalogować zawartość dmesg do pliku?


18

Korzystam z systemu operacyjnego Linux, który został zbudowany od podstaw. Chciałbym zapisać bufor komunikatów jądra (dmesg) w pliku, który pozostanie trwały między restartami.

Próbowałem uruchomić syslogd, ale właśnie otworzyłem nowy plik dziennika, / var / log / messages, bez istniejącego bufora komunikatów jądra, ani żadnych nowych komunikatów wygenerowanych przez jądro po uruchomieniu syslogd.

Jak można zapisać bufor komunikatów jądra w trwałym pliku dziennika?


Które syslogd używasz: sysklogd, busybox, inetutils, systemd, rsyslog, inne?
Gilles „SO- przestań być zły”

Odpowiedzi:


16

Musisz spojrzeć na jeden /etc/rsyslog.conflub /etc/syslog.conf. Jeśli masz wcześniej linię, taką jak:

*.*                -/var/log/syslog

Wszystko, łącznie z materiałami z dmesg, powinno przejść do tego pliku. Aby lepiej celować:

kernel.*           -/var/log/dmesg

Jeśli z jakiegoś powodu to się nie powiedzie, możesz okresowo (np. Przez cron):

dmesg > /var/log/dmesg

W zależności od tego, jak duży jest bufor dmesg (jest on wkompilowany w jądro lub ustawiany za pomocą log_buf_lenparametru) oraz od tego, jak długo twój system działał, będzie on zapisywał dziennik jądra od momentu jego uruchomienia.

Jeśli chcesz zapisywać wyjście dmesg w sposób ciągły do ​​pliku, użyj flagi -w (--follow).

dmesg --follow > mydmesg.log

4
+1 Prawdopodobnie warto wspomnieć, że dmesg używa bufora pierścieniowego, dzięki czemu nie rośnie bez ograniczeń i jest przechowywany w jądrze, dzięki czemu komunikaty mogą być rejestrowane przed uruchomieniem systemu plików.
msw

3

Jeśli używasz systemd, możesz uzyskać wszystkie informacje z systemddziennika za pomocą journalctl -k. syslogi rsyslognie są konieczne, jeśli używasz systemd.


0

PopSicle robi to Używam starego przekierowania msdos i jest on ograniczony do pliku .csv, który jest otwierany w arkuszu kalkulacyjnym przez LibreOffice Calc w terminalu wypróbuj coś takiego

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"
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.