2012-07-10 15 views
7

के बीच अंतर मैं केवीएम मॉड्यूल को संशोधित कर रहा हूं और मैंने कर्नेल कोड में प्रिंटक स्टेटमेंट्स जोड़े हैं। वर्चुअल मशीन चलाने के बाद, प्रिंटक मुझे अतिथि के बारे में दोषपूर्ण पता और अन्य जानकारी देता है ओएस।dmesg और /var/log/kern.log

मुझे इस जानकारी से आंकड़ा उत्पन्न करने की आवश्यकता है। जब मैं dmesg का उपयोग करता हूं तो मैं केवल कर्नेल स्पेस में को दोषपूर्ण पता देख सकता हूं यानी उनका पता 0XC0000000 से ऊपर है। (VMEXIT होने पर दोषपूर्ण पते की आवश्यकता होती है यानी हम अतिथि से स्विच करते हैं होस्ट मोड)

जब मैं kern.log में वही आंकड़े देखता हूं तो मुझे उपयोगकर्ता स्थान (0XC0000000 से नीचे) से भी दोषपूर्ण पता मिलता है। तो ऐसा लगता है कि डीएमएसजी की सीमित क्षमता है, और दी गई जानकारी kern.log से सबसेट है।
मेरी kern.log फ़ाइल बहुत बड़ी है, kern.log से पुराने डेटा को मिटाना ठीक है क्योंकि टेक्स्ट प्रोसेसिंग कमांड जैसे grep, join, awk फ़ाइल पर चलाने के लिए बहुत अधिक समय ले रहे हैं।

मेरा प्रश्न है:
dmesg और kern.log के बीच क्या अंतर है?
cron job के रूप में kern.log फ़ाइल आकार को कैसे कम करें? (पिछले 24 घंटों में जोड़े गए सभी डेटा मिटाएं)
क्या कर्नेल से प्रिंटफ प्रकार की कार्यक्षमता प्राप्त करने का कोई बेहतर तरीका है?

उत्तर

5

/var/log/kern.log और उसके घुमावदार लॉग (/var/log/kern.log.1 /var/log/kern.log.2 ....) में कर्नेल द्वारा उत्पादित लॉग और syslog द्वारा प्रबंधित किए गए लॉग शामिल हैं।

dmesg जांच या कर्नेल अंगूठी बफर नियंत्रित करने के लिए प्रयोग किया जाता है:

dmesg के रूप में आदमी पेज से समझाया है।

वास्तव में, यह अंतिम बूट के बाद से पिछले 16392 ऑक्टेट /var/log/kern.log प्रदर्शित करेगा।

+0

सामग्री को मिटाना ठीक है .. kern.log और kern.log.1 kern.log.1 का इतना बड़ा है कि vi इसे लोड करने के लिए 5 मिनट लेता है ... अगर वे इतने लंबे समय तक फ़ाइल को संसाधित नहीं कर सकते .... मैं 'cat/dev/null> kern.log' और' cat/dev/null> kern.log.1' करने के बारे में सोच रहा था ... क्या लॉग डेटा मिटाना ठीक है ?? – Deepthought

+2

@Deepthought हाँ आप उन फ़ाइलों को मिटा सकते हैं लेकिन syslog केवल 5 अंतिम फाइलें ही रखेगी। –

+0

मेरे उबंटू 16.04 में 'dmesg' के आउटपुट में'/var/log/kern.log' के अंतिम 16392 ऑक्टेट्स के साथ लगभग कोई सहसंबंध नहीं है (जिसे मैंने 'tail -c 16392 '' से प्राप्त किया था। कुछ (कुछ) रेखाएं समान होती हैं लेकिन किसी को आउटपुट प्रारूप में दिखाए गए फ़ील्ड, फ़ील्ड दिखाए जाते हैं, और यह स्पष्ट नहीं होता है कि किस तरह के झंडे या 'अजीब' पोस्ट-प्रोसेसिंग के परिणामस्वरूप उत्पादन का उत्पादन किया जा सकता है जिसे साफ़ किया जा सकता है 'diff' का उपयोग कर। –

संबंधित मुद्दे