मैं अपने सिसलॉग के आकार को कैसे सीमित करूं?


14

मुझे अपनी माँ का कंप्यूटर Ubuntu 12.04 LTS चल रहा है। यह ठीक काम कर रहा है, लेकिन अचानक syslog भर रहा है। और भरने से मेरा मतलब है कि मैं सिर्फ एक हटा दिया /var/log/syslogगया था कि आकार में 400GB था। हाँ - गीगाबाइट्स।

हालांकि मुझे यकीन है कि वहाँ कुछ उपयोगी जानकारी थी, मुझे यकीन नहीं है कि 400GB किसी भी तरह की जानकारी के माध्यम से झारना है। और इसके बारे में वास्तव में आश्चर्यजनक है कि यह 8 घंटे की अवधि के भीतर हुआ - मैं dfदोपहर के आसपास चला था , और तब और अब के बीच में उसकी ड्राइव 30% (सिर्फ 70% से 100% तक) भर गई।

यह क्या कारण हो सकता है और मैं इसे कैसे ठीक कर सकता हूं? `

EDIT लगता है कि USB अपराधी है:

Sep  8 08:52:10 pamela-desktop kernel: [ 6198.157829] usb 1-3: usbfs: process 1500 (demond_nscan) did not claim interface 3 before use
Sep  8 08:52:10 pamela-desktop kernel: [ 6198.157836] usb 1-3: usbfs: process 1500 (demond_nscan) did not claim interface 3 before use
Sep  8 08:52:10 pamela-desktop kernel: [ 6198.157842] usb 1-3: usbfs: process 1500 (demond_nscan) did not claim interface 3 before use
Sep  8 08:52:10 pamela-desktop kernel: [ 6198.157849] usb 1-3: usbfs: process 1500 (demond_nscan) did not claim interface 3 before use
Sep  8 08:52:10 pamela-desktop kernel: [ 6198.157857] usb 1-3: usbfs: process 1500 (demond_nscan) did not claim interface 3 before use
Sep  8 08:52:10 pamela-desktop kernel: [ 6198.157863] usb 1-3: usbfs: process 1500 (demond_nscan) did not claim interface 3 before use
Sep  8 08:52:10 pamela-desktop kernel: [ 6198.157870] usb 1-3: usbfs: process 1500 (demond_nscan) did not claim interface 3 before use
Sep  8 08:52:10 pamela-desktop kernel: [ 6198.157877] usb 1-3: usbfs: process 1500 (demond_nscan) did not claim interface 3 before use
Sep  8 08:52:10 pamela-desktop kernel: [ 6198.157884] usb 1-3: usbfs: process 1500 (demond_nscan) did not claim interface 3 before use
Sep  8 08:52:10 pamela-desktop kernel: [ 6198.157891] usb 1-3: usbfs: process 1500 (demond_nscan) did not claim interface 3 before use

2
मैं कहता हूं कि आकार को सीमित करने के बजाय, आपको यह पता लगाने की कोशिश करनी चाहिए कि यह क्या भरता है। बहुत सारे दोहराए गए संदेश होने चाहिए, tail -n20 /var/log/syslogअंतिम 20 लाइनों पर एक नज़र डालने के लिए दौड़ने की कोशिश करें ।
मिखावतवर

मैंने कोशिश की कि फ़ाइल को खोलने से पहले - कुछ भी दोहराया नहीं गया था, लेकिन मैं फिर
वेन वर्नर

तो ऐसा लगता है कि समस्या "demond_nscan" है, जो मुझे Google पर कुछ भी नहीं मिलती है। nscanएक पोर्ट-स्कैनिंग एप्लिकेशन है, इसलिए यह किसी का संशोधन हो सकता है (लेकिन मैं सिर्फ थ्योरी बना रहा हूं)। यदि यह ऐसा कोई एप्लिकेशन नहीं है जिसे आप स्पष्ट रूप से चलाने की कोशिश कर रहे हैं, तो मैं निष्पादन योग्य (कुछ ऐसा find / -iname demond_nscan) खोजने की कोशिश कर रहा हूं , और इसका नाम बदलकर / इसे बदल रहा हूं ताकि यह निष्पादन योग्य न हो। (इस तरह, अगर यह वास्तव में किसी चीज के लिए महत्वपूर्ण है, तो आप इसे नहीं खोए हैं, और अगर यह किसी और चीज द्वारा लॉन्च किया गया है, तो आप नोटिस कर सकते हैं। इसके अलावा, जांच crontab -lकरें
स्टीव क्रून

1
demond_nscan ऐसा लगता है कि यह lexmark स्कैन ड्राइवरों से संबंधित है।
वेन वर्नर

जवाबों:


12

आपको पता लगाना चाहिए कि बड़ी मात्रा में संदेशों का क्या कारण है, जैसे कि यदि आप इस समस्या को ठीक करते हैं तो आप बड़ी लॉग फ़ाइल को ठीक करते हैं।

हालांकि, तब तक आप नीचे दिए गए किसी एक लॉग लॉग बेस में रख सकते हैं।

  • समय (उदाहरण के लिए हर दिन घुमाएँ)
  • आकार (उदाहरण के लिए, जब फ़ाइल 10mb तक पहुँचती है तो घुमाएँ)

यह पहले से ही डिफ़ॉल्ट रूप से सिस्टम पर सेटअप हो जाएगा: /etc/logrotate.d/rsyslog

 /var/log/syslog
{
    rotate 7
    daily
    missingok
    notifempty
    delaycompress
    compress
    postrotate
            reload rsyslog >/dev/null 2>&1 || true
    endscript
 }

इसमें से आप देख सकते हैं कि यह प्रतिदिन वह / var / log / syslog फ़ाइल को घुमाएगा और घुमाए गए फ़ाइल की 7 प्रतियाँ रखेगा ।

आप इसे आकार सीमा में घुमाने के लिए बदल सकते हैं, 1mb कह सकते हैं या कम कर सकते हैं कि यह कितनी प्रतियाँ संग्रहीत करता है।

चेतावनी: यह आपके मुद्दे के मूल कारण को ठीक नहीं करेगा , हालांकि यह आपको कुछ समय खरीदेगा क्योंकि यह फ़ाइल सिस्टम को भरने से रोक देगा।

  • स्रोत: /etc/logrotate.d/rsyslog
  • स्रोत: आदमी लोगरट

2
यह वास्तविक syslog के आकार को सीमित नहीं करेगा!
abu_bua

6

लॉगोटेट के आकार को सीमित करें

/etc/logrotate.d/syslogकॉन्फ़िगरेशन फ़ाइल खोलें

sudo nano /etc/logrotate.d/syslog

फ़ाइल sth लगती है। पसंद

/var/log/syslog
{
    rotate 7
    daily
    missingok
    notifempty
    delaycompress
    compress
    postrotate
        /usr/lib/rsyslog/rsyslog-rotate
    endscript
}
....
...

size 100k कोष्ठक में उदाहरण के लिए जोड़ें । बाद में यह दिखना चाहिए:

/var/log/syslog
{
    rotate 7
    size 100k
    daily
    missingok
    notifempty
    delaycompress
    compress
    postrotate
        /usr/lib/rsyslog/rsyslog-rotate
    endscript
}

ध्यान दें, कि यह घूर्णन फ़ाइलों के फ़ाइल आकार को सीमित करता है, न कि वास्तविक syslog फ़ाइल को। फ़ाइल सहेजें। अगली बार जब लॉगरोट क्रोन काम शुरू होता है, तो यह घुमाए गए लॉग के आकार को सीमित करेगा।

वर्तमान syslog का आकार सीमित करें

के आकार को सीमित करने के लिए /var/log/syslog, आपको /etc/rsyslog.d/50-default.confएक निश्चित लॉग आकार को संपादित करना होगा और सेट करना होगा।

इस सेटिंग को निम्न पंक्ति में बदलकर जोड़ें या संशोधित करें /etc/rsyslog.d/50-default.conf:

.*;auth,authpriv.none       -/var/log/syslog

यहाँ rsyslog मैनुअल का एक अंश :

आउटपुट चैनल$ आउटचैनल निर्देश के माध्यम से परिभाषित किया गया है। यह सिंटैक्स निम्नानुसार है: $ outchannel नाम, फ़ाइल-नाम, अधिकतम-आकार, क्रिया-पर-अधिकतम-आकार का नाम आउटपुट चैनल (फ़ाइल नहीं) का नाम है, फ़ाइल-नाम वह फ़ाइल नाम है जिसे लिखा जाना है , अधिकतम आकार अधिकतम अनुमत आकार और एक्शन-ऑन-मैक्स-आकार एक कमांड जारी किया जा सकता है जब अधिकतम आकार पहुंच जाता है। इस कमांड में हमेशा एक पैरामीटर होता है। बाइनरी पहला स्पेस से पहले एक्शन-ऑन-मैक्स-साइज़ का वह हिस्सा है, इसका पैरामीटर उस स्पेस के पीछे सब कुछ है। कृपया ध्यान दें कि अधिकतम आकार फ़ाइल में लॉग संदेश लिखने के पहले से ही है। इसलिए इस सीमा को उचित रूप से कम करना सुनिश्चित करें ताकि कोई भी संदेश फिट हो सके। वर्तमान रिलीज़ के लिए, यह आपके द्वारा अपेक्षित अपेक्षा 1k कम सेट करने में सहायक है। अधिकतम आकार हमेशा बाइट्स में निर्दिष्ट होना चाहिए - कोई विशेष प्रतीक नहीं हैं (जैसे 1k, 1m) ...) विकास के इस बिंदु पर। ध्यान रखें कि $ outchannel सिर्फ "नाम" के साथ एक चैनल को परिभाषित करता है। यह इसे सक्रिय नहीं करता है। ऐसा करने के लिए, आपको एक चयनकर्ता रेखा (नीचे देखें) का उपयोग करना होगा। उस चयनकर्ता पंक्ति में चैनल का नाम और उसके सामने $ चिह्न शामिल है। एक नमूना हो सकता है:: omfile: $ mychannel अपने वर्तमान रूप में, आउटपुट चैनल मुख्य रूप से आउटपुट फ़ाइल को आकार-सीमा करने की क्षमता प्रदान करते हैं। ऐसा करने के लिए, एक अधिकतम आकार निर्दिष्ट करें। जब यह आकार पहुँच जाता है, तो rsyslogd क्रिया-पर-अधिकतम-आकार कमांड को निष्पादित करेगा और फिर फ़ाइल को फिर से खोल देगा और पुनः प्रयास करेगा। कमांड एक लॉग रोटेशन स्क्रिप्ट या एक समान चीज की तरह होना चाहिए।

यदि कोई क्रिया-पर-अधिकतम-आकार आदेश नहीं है या कमांड ने स्थिति को हल नहीं किया है, तो फ़ाइल बंद है और कभी भी rsyslogd (इसे छोड़कर, निश्चित रूप से इसे huping द्वारा) से फिर से खोलना नहीं है। इस तर्क को तब एकीकृत किया गया था जब हमने पहली बार गंभीर मुद्दों को 2gb से बड़ी फ़ाइलों के साथ अनुभव किया था, जिससे rsyslogd डंपिंग कोर हो सकता है। ऐसे मामलों में, एकल फ़ाइल पर लिखना बंद करना अधिक उचित है। इस बीच, rsyslogd को बड़ी 2gb फ़ाइलों का समर्थन करने के लिए तय किया गया है, लेकिन स्पष्ट रूप से केवल फ़ाइल सिस्टम और ऑपरेटिंग सिस्टम संस्करणों पर जो ऐसा करते हैं। तो यह अभी भी 2gb फ़ाइल आकार सीमा को लागू करने के लिए समझ में आ सकता है।

यहाँ अधिकतम आकार 1 एमबी है, इससे पहले कि इस लाइन जगह *.*; ...लाइन

$outchannel mysyslog,/var/log/syslog,1048576

और *.*; ...लाइन में बदल जाते हैं

*.*;auth,authpriv.none  :omfile:$mysyslog

Rsyslogd को पुनरारंभ करें

sudo service rsyslog restart

0

मुझे दो सप्ताह के लिए एक Lexmark Pro915 के साथ यही समस्या थी। मैंने दो काम किए, और यह अब ठीक काम करता है। मैंने ड्राइवर को फिर से लगाया। (ऐसा मत सोचो कि यह क्या मदद की गई थी।) मैंने अपने द्वारा उपयोग किए गए यूएसबी एक्सटेंशन को निकाल लिया, जिसकी कुल लंबाई लगभग 15 'लंबी थी और जो पूरी तरह से संगत नहीं हो सकती थी। मुझे संदेह है कि लिनक्स सिस्टम के लिए लेक्समार्क ड्राइवर खराब या खराब समय का संकेत दे सकता है, संकेत दे सकता है और आपको दिन में 10 बिलियन बार इसके बारे में बताना चाहता है। अपने कनेक्शन को किसी तरह सुधारने का प्रयास करें।

लोगरोट और इसी तरह के समाधान से मुझे मदद नहीं मिली। Kern.log और syslog एक साथ एक दिन में 1TB से अधिक लॉगिंग कर रहे थे! यदि आप इसे हर बारह मिनट चलाने के लिए सेट कर सकते हैं तो लॉगोट्रेट मदद कर सकता है।

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