एंड्रॉयड

लिनक्स में Dmesg कमांड

7 कर्नेल अंगूठी बफर पढ़ने के लिए dmesg का उपयोग करना

7 कर्नेल अंगूठी बफर पढ़ने के लिए dmesg का उपयोग करना

विषयसूची:

Anonim

लिनक्स कर्नेल ऑपरेटिंग सिस्टम का मूल है जो सिस्टम संसाधनों तक पहुंच को नियंत्रित करता है, जैसे सीपीयू, आई / ओ डिवाइस, फिजिकल मेमोरी और फाइल सिस्टम। कर्नेल बूट प्रक्रिया के दौरान कर्नेल रिंग बफर को विभिन्न संदेश लिखता है, और जब सिस्टम चल रहा होता है। इन संदेशों में सिस्टम के संचालन के बारे में विभिन्न जानकारी शामिल है।

कर्नेल रिंग बफर भौतिक मेमोरी का एक हिस्सा है जो कर्नेल के लॉग संदेशों को रखता है। इसका एक निश्चित आकार है, जिसका अर्थ है कि एक बार बफर भर जाने के बाद, पुराने लॉग रिकॉर्ड्स ओवरराइट हो जाते हैं।

dmesg कमांड-लाइन उपयोगिता का उपयोग लिनक्स और अन्य यूनिक्स जैसे ऑपरेटिंग सिस्टम में कर्नेल रिंग बफर को प्रिंट और नियंत्रित करने के लिए किया जाता है। यह कर्नेल बूट संदेशों की जांच करने और हार्डवेयर संबंधी समस्याओं को डीबग करने के लिए उपयोगी है।

इस ट्यूटोरियल में, हम dmesg कमांड की मूल बातें कवर करेंगे।

dmesg कमांड का उपयोग करना

dmesg कमांड के लिए सिंटैक्स निम्नानुसार है:

dmesg

जब बिना किसी विकल्प के आह्वान किया जाता है तो dmesg मानक आउटपुट पर कर्नेल रिंग बफर से सभी संदेश लिखता है:

dmesg

डिफ़ॉल्ट रूप से, सभी उपयोगकर्ता dmesg कमांड चला सकते हैं। हालांकि, कुछ प्रणालियों पर, गैर-रूट उपयोगकर्ताओं के लिए dmesg की पहुंच प्रतिबंधित हो सकती है। इस स्थिति में, जब dmesg आह्वान किया जाएगा तो आपको नीचे जैसा त्रुटि संदेश मिलेगा:

dmesg: read kernel buffer failed: Operation not permitted

कर्नेल पैरामीटर kernel.dmesg_restrict निर्दिष्ट करता है कि क्या kernel.dmesg_restrict उपयोगकर्ता कर्नेल लॉग बफ़र से संदेश देखने के लिए dmesg का उपयोग कर सकते हैं। प्रतिबंध हटाने के लिए, इसे शून्य पर सेट करें:

sudo sysctl -w kernel.dmesg_restrict=0

आमतौर पर, आउटपुट में बहुत सारी जानकारी होती है, इसलिए आउटपुट का केवल अंतिम भाग ही देखा जा सकता है। एक समय में एक पृष्ठ देखने के लिए, आउटपुट को पेजर की उपयोगिता जैसे कि less या more पाइप करें:

dmesg --color=always | less

--color=always का उपयोग --color=always रंगीन आउटपुट को संरक्षित करने के लिए किया जाता है।

dmesg | grep -i usb

dmesg कर्नेल द्वारा /proc/kmsg वर्चुअल फ़ाइल से उत्पन्न संदेशों को पढ़ता है। यह फ़ाइल कर्नेल रिंग बफर को एक इंटरफ़ेस प्रदान करती है और इसे केवल एक प्रक्रिया द्वारा खोला जा सकता है। यदि आपके सिस्टम पर syslog प्रक्रिया चल रही है और आप cat साथ फाइल को पढ़ने की कोशिश करते हैं, या less , कमांड लटका होगा।

syslog डेमन कर्नेल संदेशों को /var/log/dmesg डंप करता है, इसलिए आप उस लॉग फ़ाइल का भी उपयोग कर सकते हैं:

cat /var/log/dmesg

dmesg आउटपुट का निर्माण

dmesg कमांड कई विकल्प प्रदान करता है जो आपको आउटपुट को फॉर्मेट और फिल्टर करने में मदद करते हैं।

--human के सबसे अधिक उपयोग किए जाने वाले विकल्पों में से एक है -H ( --human ), जो मानव-पठनीय आउटपुट को सक्षम करता है। यह विकल्प कमांड आउटपुट को पेजर में पाइप करता है:

dmesg -H

मानव-पठनीय टाइमस्टैम्प को मुद्रित करने के लिए -T ( --ctime ) विकल्प का उपयोग करें:

dmesg -T

IPv6: ADDRCONF(NETDEV_CHANGE): wlp1s0: link becomes ready

टाइमस्टैम्प प्रारूप को --time-format का उपयोग करके भी सेट किया जा सकता है विकल्प, जो कि ctime, reltime, delta, notime या iso हो सकता है। उदाहरण के लिए डेल्टा प्रारूप का उपयोग करने के लिए आप टाइप करेंगे:

dmesg --time-format=delta

आप दो या दो से अधिक विकल्पों को भी जोड़ सकते हैं:

dmesg -H -T

वास्तविक समय में --follow कमांड के आउटपुट को देखने के लिए -w ( --follow ) विकल्प का उपयोग करें:

dmesg --follow

फ़िल्टरिंग dmesg आउटपुट

आप dmesg आउटपुट को दी गई सुविधाओं और स्तरों तक सीमित कर सकते हैं।

सुविधा उस प्रक्रिया का प्रतिनिधित्व करती है जिसने संदेश बनाया। dmesg निम्नलिखित लॉग सुविधाओं का समर्थन करता है:

  • कर्नेल - कर्नेल संदेश user - उपयोगकर्ता-स्तरीय संदेश mail - मेल सिस्टम daemon - सिस्टम डेमोंस auth - सुरक्षा / प्राधिकरण संदेश syslog - आंतरिक syslogd संदेश lpr - लाइन प्रिंटर सबसिस्टम news - नेटवर्क समाचार सबसिस्टम

The -f ( --facility ) विकल्प आपको आउटपुट को विशिष्ट सुविधाओं तक सीमित करने की अनुमति देता है। विकल्प एक या एक से अधिक अल्पविराम से विभाजित सुविधाओं को स्वीकार करता है।

उदाहरण के लिए, आपके द्वारा उपयोग किए जाने वाले केवल कर्नेल और सिस्टम डेमॉन संदेशों को प्रदर्शित करने के लिए:

dmesg -f kern, daemon

प्रत्येक लॉग संदेश लॉग स्तर से जुड़ा होता है जो संदेश के महत्व को दर्शाता है। dmesg निम्नलिखित लॉग स्तरों का समर्थन करता है:

  • emerg - सिस्टम अनुपयोगी alert - कार्रवाई को तुरंत गंभीरता से लिया जाना चाहिए - महत्वपूर्ण स्थितियां - त्रुटि की स्थिति को warn - चेतावनी की स्थिति notice - सामान्य लेकिन महत्वपूर्ण स्थिति की info - सूचनात्मक debug - डिबग-स्तरीय संदेश

-l ( --level ) विकल्प आउटपुट को परिभाषित स्तरों तक सीमित करता है। विकल्प एक या एक से अधिक अल्पविराम से अलग स्तरों को स्वीकार करता है।

निम्न आदेश केवल त्रुटि और महत्वपूर्ण संदेश प्रदर्शित करता है:

dmesg -l err, crit

क्लीयर द रिंग बफर

-C ( --clear ) विकल्प आपको रिंग बफर को साफ़ करने की अनुमति देता है:

sudo dmesg -C

केवल sudo विशेषाधिकार वाले रूट या उपयोगकर्ता बफ़र को साफ़ कर सकते हैं।

--read-clear ( --read-clear ) विकल्प का उपयोग करने से पहले बफर सामग्री को प्रिंट करने के लिए:

sudo dmesg -c

dmesg > dmesg_messages

निष्कर्ष

dmesg कमांड आपको कर्नेल रिंग बफर को देखने और नियंत्रित करने की अनुमति देता है। कर्नेल या हार्डवेयर समस्याओं का निवारण करते समय यह बहुत उपयोगी हो सकता है।

सभी उपलब्ध dmesg विकल्पों के बारे में जानकारी के लिए अपने टर्मिनल में man dmesg टाइप करें।

dmesg कर्नेल टर्मिनल