Dmesg içeriği bir dosyaya nasıl girilebilir?


18

Sıfırdan inşa edilmiş bir Linux işletim sistemi kullanıyorum. Çekirdek ileti arabelleğini (dmesg) yeniden başlatmalar arasında kalıcı kalacak bir dosyaya kaydetmek istiyorum.

Ben syslogd çalıştırmayı denedim ama yeni bir günlük dosyası, / var / log / messages, ne mevcut çekirdek ileti arabelleği ne de syslogd başlatıldıktan sonra çekirdek herhangi bir yeni mesaj açtı.

Çekirdek ileti arabelleği kalıcı bir günlük dosyasına nasıl kaydedilebilir?


Hangi syslogd çalıştırıyorsunuz: sysklogd, busybox, inetutils, systemd, rsyslog, diğer?
Gilles 'SO- kötü olmayı bırak'

Yanıtlar:


16

Ya bakmak gerekir /etc/rsyslog.confya /etc/syslog.conf. Şunun gibi erken bir hattınız varsa:

*.*                -/var/log/syslog

Dmesg'den gelenler de dahil olmak üzere her şey bu dosyaya gitmelidir. Daha iyi hedeflemek için:

kernel.*           -/var/log/dmesg

Bu herhangi bir nedenle başarısız olursa, periyodik olarak (örneğin cron aracılığıyla) şunları yapabilirsiniz:

dmesg > /var/log/dmesg

Dmesg arabelleğinin ne kadar büyük olduğuna (bu, çekirdeğe derlenir veya log_buf_lenparametre aracılığıyla ayarlanır ) ve sisteminizin ne kadar süredir çalıştığına bağlı olarak, çekirdek günlüğünün başlamasından bu yana kaydını tutacaktır.

Dmesg çıktısını sürekli olarak bir dosyaya yazmak istiyorsanız -w (--follow) bayrağını kullanın.

dmesg --follow > mydmesg.log

4
+1 Muhtemelen dmesg'in halka tamponu kullandığını, böylece sınırsız büyümediğini ve çekirdeğin içinde tutulduğunu, böylece dosya sistemi gibi şeylerden önce mesajların günlüğe kaydedilebileceğini belirtmek gerekir.
msw

3

Eğer kullanıyorsanız systemdo zaman systemdkullanarak dergiden tüm bilgileri alabilirsiniz journalctl -k. syslogve rsyslogsystemd kullanıyorsanız gerekli değildir.


0

PopSicle bunu yapar Eski msdos yönlendirmesi kullanın ve terminalde LibreOffice Calc tarafından bir forma sayfasında açılan bir .csv dosyasına yeniden yönlendirilir böyle bir şey deneyin

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"
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.