Dmesg कंटेंट को फाइल में कैसे लॉग इन किया जा सकता है?


18

मैं एक लिनक्स ओएस चला रहा हूं जो खरोंच से बनाया गया था। मैं कर्नेल संदेश बफ़र (dmesg) को एक फ़ाइल में सहेजना चाहूंगा जो रिबूट के बीच लगातार बनी रहेगी।

मैंने syslogd चलाने की कोशिश की है, लेकिन इसने एक नई लॉग फ़ाइल, / var / log / संदेश खोले हैं, जिसमें न तो मौजूदा कर्नेल संदेश बफर है, और न ही कोई नया संदेश जो syslogd लॉन्च होने के बाद उत्पन्न हुआ है।

एक निरंतर लॉग फ़ाइल में कर्नेल संदेश बफर को कैसे बचाया जा सकता है?


आप कौन से syslogd चला रहे हैं: sysklogd, busybox, inetutils, systemd, rsyslog, अन्य?
गिल्स एसओ- बुराई को रोकना '

जवाबों:


16

आपको /etc/rsyslog.confया तो देखने की जरूरत है या /etc/syslog.conf। यदि आपके पास एक लाइन है जैसे कि:

*.*                -/var/log/syslog

Dmesg से सामान सहित सब कुछ, उस फ़ाइल में जाना चाहिए। इसे बेहतर तरीके से लक्षित करने के लिए:

kernel.*           -/var/log/dmesg

यदि यह किसी कारण से विफल हो जाता है, तो आप समय-समय पर (उदाहरण के लिए क्रोन) कर सकते हैं:

dmesg > /var/log/dmesg

यह निर्भर करता है कि dmesg बफर कितना बड़ा है (यह कर्नेल में संकलित किया गया है, या log_buf_lenपैरामीटर के माध्यम से सेट किया गया है) और आपका सिस्टम कितने समय तक चला है, यह शुरू होने के बाद से कर्नेल लॉग का रिकॉर्ड रखेगा।

यदि आप dmesg आउटपुट को फाइल -w (--follow) झंडे का लगातार उपयोग करना चाहते हैं।

dmesg --follow > mydmesg.log

4
+1 यह संभवतः ध्यान देने योग्य है कि dmesg एक रिंग बफर का उपयोग करता है ताकि यह बिना बाउंड के न बढ़े और कर्नेल के भीतर आयोजित हो ताकि मैसेज सिस्टम से जुड़ी चीजों से पहले लॉग इन किया जा सके।
msw

3

यदि आप उपयोग करते हैं systemdतो आप systemdपत्रिका का उपयोग करके सभी जानकारी प्राप्त कर सकते हैं journalctl -ksyslogऔर rsyslogयदि आप systemd का उपयोग करते हैं तो आवश्यक नहीं है।


0

PopSicle करता है कि मैं पुराने msdos को पुनर्निर्देशित करता हूं और इसे एक .csv फ़ाइल में रिडीयर किया जाता है, जिसे टर्मिनल में लिबर ऑफिस Calc द्वारा एक फैली हुई शीट में खोला जाता है।

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"
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.