जब तक लॉग एक निश्चित आकार से अधिक न हो, अंतराल पर आधारित लॉग को कैसे घुमाएं?


20

लोगरोट के मैन पेज से:

minsize आकार
लॉग फ़ाइलों घुमाया जाता है जब वे आकार बाइट्स से भी बड़ा हो जाना है, लेकिन नहीं अतिरिक्त निर्दिष्ट समय अंतराल (दैनिक, साप्ताहिक, मासिक या वार्षिक) से पहले। संबंधित आकार विकल्प समान है सिवाय इसके कि यह समय अंतराल के विकल्प के साथ पारस्परिक रूप से अनन्य है, और यह लॉग फ़ाइलों को अंतिम रोटेशन समय की परवाह किए बिना घुमाए जाने का कारण बनता है। जब मिनीसाइज़ का उपयोग किया जाता है, तो लॉग फ़ाइल के आकार और टाइमस्टैम्प दोनों पर विचार किया जाता है।

जब वे आकार के बाइट से बड़े होते हैं, तो आकार का आकार
लॉग फ़ाइलों को घुमाया जाता है। यदि आकार का k द्वारा अनुसरण किया जाता है, तो आकार को किलोबाइट में माना जाता है। यदि M का उपयोग किया जाता है, तो आकार मेगाबाइट में है, और यदि G का उपयोग किया जाता है, तो आकार गीगाबाइट में है। तो आकार 100, आकार 100k, आकार 100M और आकार 100Gare सभी मान्य।

मैं सेट आकार के रूप में 5M और अंतराल के रूप में साप्ताहिक कि लॉग एक साप्ताहिक आधार और अतिरिक्त रोटेशन पर घुमाया जायेगा घटित होता है, तो लॉग के आकार 5M से अधिक है सोच। लेकिन क्या होता है कि लॉग को घुमाया नहीं जाता है जब तक कि यह 5M से अधिक न हो, जो ऐसा लगता है कि minsize क्या करना चाहिए।

क्या मैं गलत तरीके से मैनुअल की व्याख्या कर रहा हूं? मुझे साप्ताहिक आधार पर घुमाने के लिए लॉग कैसे मिलेगा और अगर यह 5M से अधिक है?

संपादित करें:

मुझे यकीन नहीं है कि निम्नलिखित जानकारी प्रासंगिक है, लेकिन सिर्फ पूरक के लिए:

मैं संदेश, सुरक्षित, क्रोन, मैलोड, बूट के लिए मुख्य लॉगिंग करने के लिए rsyslog का उपयोग कर रहा हूं। निम्नलिखित उपर्युक्त लॉग की रोटेशन तिथि और फ़ाइल आकार निम्नलिखित हैं, जहां आकार और अंतराल ऊपर वर्णित हैं:

filename  rotation date  file size
messages  20130129       5.3MB
secure    20130113       5.1kB
cron      20130113       3.6kB
maillog   20130113       1.1kB

जैसा कि देखा जा सकता है, केवल संदेश घूमते हैं।

EDIT2:

मेरे पास जांच होनी चाहिए man logrotate। उन्होंने वास्तव में इसे अधिकतम विकल्प के साथ उन्नत किया । यह वही होना चाहिए जिसकी मुझे तलाश है:

जब वे अतिरिक्त निर्दिष्ट समय अंतराल (दैनिक, साप्ताहिक, मासिक, या वार्षिक) से पहले ही आकार बाइट्स से बड़े हो जाते हैं, तो अधिकतम आकार
लॉग फ़ाइलें घुमाई जाती हैं। संबंधित आकार विकल्प समान है सिवाय इसके कि यह समय अंतराल के विकल्प के साथ पारस्परिक रूप से अनन्य है, और यह लॉग फ़ाइलों को अंतिम रोटेशन समय की परवाह किए बिना घुमाए जाने का कारण बनता है। जब अधिकतम उपयोग किया जाता है, तो लॉग फ़ाइल के आकार और टाइमस्टैम्प दोनों पर विचार किया जाता है।

जवाबों:


24

कुछ सवालों के जवाब यहां दिए गए हैं: रोज लॉग इन करें और आकार दें?

आमतौर पर logrotateकेवल एक बार दैनिक रूप से चलाया जाएगा, इसलिए आकार की सीमाओं को बिल्कुल सम्मानित नहीं किया जाएगा। logrotateस्थिति फ़ाइल (संभवतः /var/lib/logrotate.status) केवल तिथियों को संग्रहीत करती है (बार नहीं), यह अधिक बार उपयोग करने के लिए अभिप्रेत नहीं है, इसलिए आप फ़ाइलों को अधिक बार बारी बारी से नहीं कर सकते हैं ( अपडेट : संस्करण 3.85 प्रति घंटा समर्थन जोड़ता है , और राज्य फ़ाइल में एक पूर्ण टाइमस्टैम्प संग्रहीत करता है ।)

आप यह नहीं कहते कि syslogdआप किसका उपयोग कर रहे हैं, rsyslog और syslog- एनजी समर्थन स्व-प्रबंधित आकार आधारित रोटेशन है, इसलिए आपको उन लोगों को आकार से घुमाने में सक्षम होना चाहिए, और logrotateसाप्ताहिक घुमाने के लिए प्राप्त करना चाहिए (हालांकि कुछ विचार के लिए आवश्यक हो सकता है) फ़ाइल नामकरण यह सुनिश्चित करने के लिए कि एक साथ फ़ाइल रोटेशन गलती से कुछ हटा नहीं है)।

एक अन्य विकल्प अपाचे की तरह, पाइप लॉग का उपयोग करना है, वास्तव में अपाचे-2.4 rotatelogs बिल्कुल इस सुविधा का समर्थन करता है (पिछले संस्करण केवल समर्थित आकार या स्वतंत्र रूप से समय)। आप यह नहीं कहते कि लॉग कहाँ से उत्पन्न हो रहे हैं, लेकिन यदि आप rotatelogsसमर्थित हैं , तो आप पाइप या फ़ोरो में लॉग इन कर सकते हैं और उपयोग कर सकते हैं ।

साथ logrotate<= v3.8.0 तीन समर्थित परिदृश्य हैं:

  1. आकार से आकार में घुमाएं, एक बार दैनिक रूप से, अधिकतम समय बीतने के बावजूद
  2. टाइमपेरियोड , आकार की परवाह किए बिना, टाइमपेरोड द्वारा बिना शर्त घुमाए जाते हैं
  3. minsize & timeperiod यदि लॉगफाइल आकार minsize से अधिक है, तो टाइमपरोइड द्वारा घुमाएं। एक आम उपयोग "मिनसाइज़ 1" है जिसका अर्थ है 0-बाइट लॉग को घुमाना नहीं है, अव्यवस्था को कम करना।

logrotate-3.8.1 कहते हैं:

  1. MAXSIZE और TIMEPERIOD घुमाने जब या तो आकार MAXSIZE से अधिक है, या बीता TIMEPERIOD के बाद। logrotateइस मामले में प्रति दिन एक बार डिफ़ॉल्ट से अधिक चलाने की आवश्यकता हो सकती है।

logrotate-3.8.5 कहते हैं:

  1. प्रति घंटा समर्थन, और राज्य फ़ाइल में एक पूर्ण टाइमस्टैम्प संग्रहीत करता है। आपको इसके लिए logrotate(कम से कम) प्रति घंटा चलना चाहिए ।

कृपया मेरा अपडेट देखें, लिंक के लिए धन्यवाद। कुछ स्क्रिप्टिंग की तरह लगता है की आवश्यकता है? minsize बहुत उपयोगी नहीं लगता है, मुझे आश्चर्य है कि वे इसे अधिकतम करने के बजाय क्यों रखते हैं।
प्रश्न

1
अब, अधिकतम विकल्प उपलब्ध है। केस क्लोज :)
प्रश्न अतिप्रवाह

स्पॉट किया गया कि डॉक्स में आपके अपडेट को पढ़ने से पहले ... उत्तर अब विस्तारित हो गया है। धन्यवाद।
mr.spuratic

1
> logrotate की स्थिति फ़ाइल (संभवतः /var/lib/logrotate.status) केवल तिथियाँ संग्रहीत करती है (बार नहीं) यह कथन पुराना हो सकता है। मैंने अभी-अभी अपनी लॉगोट स्टेटस फ़ाइल की जाँच की, और इसमें दूसरे रिज़ॉल्यूशन के साथ टाइमस्टैम्प्स थे: "/var/log/kern.log" 2018-3-12-1: 8: 16
हाइपरैर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.