लॉगरोट बिल्कुल "दैनिक" कैसे संभालता है?


30

मेरे सिस्टम पर टाइमस्टैम्प्स को देखते हुए, लॉगऑन को क्रोन द्वारा चलाए जाने पर लॉगट्रेट अपना दैनिक लॉग रोटेशन करता है। हालाँकि, अगर मैं इसे पहले से चलाता हूँ तो यह फाइलों को घुमाता नहीं है। लॉगरोट को कैसे पता चलता है कि उन्हें घुमाना चाहिए या नहीं, क्या यह एक इतिहास रखता है या शायद टाइमस्टैम्प का उपयोग करता है?

जवाबों:


32

मेरा मानना ​​है कि यह स्टेट फाइल की सामग्री है, जो मेरा मामला है /var/lib/logrotate.status। प्रत्येक फ़ाइल में एक पंक्ति होती है, जो वह तारीख होती है जिस पर इसे अंतिम बार घुमाया जाता था; यदि आप ऐसी तिथि पर लॉगोट्रोट चलाते हैं, जो दी गई फ़ाइल रोटेशन के लिए है, तो वर्तमान तिथि और फ़ाइल में तिथि (दैनिक के लिए 1, साप्ताहिक के लिए 7, आदि) के बीच दिनों की संख्या को देखते हुए फ़ाइल घुमाई जाएगी।

लॉगरोट को इस बात की परवाह नहीं है कि यह दिन के किस समय चल रहा है; यहां तक ​​कि अगर यह आमतौर पर 2355 पर चलता है, अगर आप इसे 0130 पर चलाने के बजाय, यह अभी भी दैनिक और अंतिम रूप से चिह्नित फ़ाइलों को घुमाएगा; लेकिन ऐसा करने के बाद यह आज की तारीख को राज्य की फाइल (किसी भी घुमाई गई फ़ाइलों के खिलाफ) में डाल देगा, इसलिए 2355 पर दूसरा रन कुछ नहीं करेगा।


1
हम्म .. तो यह केवल तभी घूमता है यदि: वर्तमान दिनांक> दिनांक /var/lib/logrotate/status(जैसा कि फ़ाइल मेरे मामले में है)।
काइल ब्रांट

2
मुझे लगता है कि यह केवल कुछ भी करता है अगर 24 घंटे बीत चुके हैं क्योंकि यह अंतिम रन था, जो कि राज्य फ़ाइल के माइम की जांच करके काम करता है। एक बार जब यह तय हो जाता है कि पूरा दिन बीत चुका है और यह कानूनन कुछ भी कर सकता है, तो यह फ़ाइल के अंदर दिनांक फ़ील्ड के आधार पर DAILY, WEEKLY आदि निर्णय करता है।
MadHatter

4
वैसे यह उस फ़ाइल में दिनांक का उपयोग करने के लिए लगता है। मैंने एक दिन पहले की स्थिति फ़ाइल में वापस सेट किया और इसे चलाया ... यह घुमाया गया
काइल ब्रांडी

बस वापस जाने के बाद और मेरे लोगो को लगा, मुझे लगता है कि मैं गलत था और आप जो लिख रहे हैं वह सही है। यदि यह पहले से ही राज्य फ़ाइल की टाइमस्टैम्प को देखकर चलाया गया है, तो यह तय करता है; यदि ऐसा नहीं है, तो यह राज्य फ़ाइल से अंतिम रोटेशन की तारीखों को निकालने के लिए आगे बढ़ता है, और तदनुसार कार्य करता है। मैं सिर्फ vi और टच -t के साथ लॉगरोटेट करने के लिए झूठ बोला था ताकि यह साबित हो सके कि यह कल 2355 पर चला था, जब इसने मेरे मुनिन लॉग को घुमाया। इसे फिर से चलाना, भले ही यह 24 घंटे से कम हो, लेकिन इसने उन्हें घुमाया और तदनुसार राज्य फ़ाइल को अपडेट किया।
MadHatter

मैंने अपनी वर्तमान समझ के लिए अपना उत्तर अपडेट कर दिया है, मैंने अभी-अभी चलाए गए परीक्षणों के सेट को देखते हुए (मेरे मुनिन ने रविवार से आठ तरीके से लॉगिंग की है, लेकिन कौन परवाह करता है!)।
MadHatter

11

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

आम तौर पर, लॉगरोट को दैनिक क्रोन नौकरी के रूप में चलाया जाता है। यह एक दिन में एक से अधिक बार लॉग को संशोधित नहीं करेगा, जब तक कि लॉग के लिए मापदंड लॉग के आकार पर आधारित न हो और लॉगरोट को प्रत्येक दिन एक से अधिक बार चलाया जा रहा हो, या जब तक -f या -force विकल्प का उपयोग नहीं किया जाता है।


1
देखने के लिए जब cron.daily चलाया जाता है तो यहां जाएं
ट्रेवर बॉयड स्मिथ
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.