Bagaimana konten dmesg dapat login ke file?

18

Saya menjalankan OS Linux yang dibangun dari awal. Saya ingin menyimpan buffer pesan kernel (dmesg) ke file yang akan tetap ada di antara reboot.

Saya sudah mencoba menjalankan syslogd tetapi hanya membuka file log baru, / var / log / messages, tanpa buffer pesan kernel yang ada, atau pesan baru apa pun yang dihasilkan kernel setelah syslogd diluncurkan.

Bagaimana penyangga pesan kernel disimpan ke file log persisten?

miluz
sumber
Syslogd mana yang Anda jalankan: sysklogd, busybox, inetutils, systemd, rsyslog, lainnya?
Gilles 'SO- stop being evil'

Jawaban:

16

Anda perlu melihat salah satu /etc/rsyslog.confatau /etc/syslog.conf. Jika Anda memiliki garis awal seperti:

*.*                -/var/log/syslog

Semuanya, termasuk hal-hal dari dmesg, harus masuk ke file itu. Untuk menargetkan lebih baik:

kernel.*           -/var/log/dmesg

Jika itu gagal karena suatu alasan, Anda dapat secara berkala (mis. Via cron):

dmesg > /var/log/dmesg

Bergantung pada seberapa besar buffer dmesg (ini dikompilasi ke dalam kernel, atau ditetapkan melalui log_buf_lenparameter) dan berapa lama sistem Anda telah menyala, itu akan menyimpan catatan log kernel sejak dimulai.

Jika Anda ingin menulis output dmesg secara terus-menerus ke file, gunakan flag -w (--follow).

dmesg --follow > mydmesg.log
goldilocks
sumber
4
+1 Mungkin perlu disebutkan bahwa dmesg menggunakan buffer cincin sehingga tidak tumbuh tanpa terikat dan disimpan di dalam kernel sehingga pesan dapat dicatat sebelum hal-hal seperti filesystem naik.
msw
3

Jika Anda menggunakan systemdmaka Anda bisa mendapatkan semua informasi dari systemdjurnal menggunakan journalctl -k. syslogdan rsyslogtidak perlu jika Anda menggunakan systemd.

Catalin Hritcu
sumber
0

PopSicle melakukan ini, saya menggunakan redirect msdos lama dan itu direduksi menjadi file .csv yang dibuka di lembar kerja oleh LibreOffice Calc di terminal coba sesuatu seperti ini

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"
Joe
sumber