जैसा कि मेरे ज़ीशान का उल्लेख है, लॉगोटेट विकल्प size
, minsize
, maxsize
रोटेशन के लिए ट्रिगर्स हैं।
बेहतर व्याख्या करने के लिए। आप जितनी बार चाहें उतनी बार लॉग्रोटेट चला सकते हैं, लेकिन जब तक कोई सीमा तक नहीं पहुंच जाती है जैसे कि फाइलसाइज तक पहुंचा जा रहा है या उचित समय बीत चुका है, तो लॉग घुमाए नहीं जाएंगे।
आकार विकल्प यह सुनिश्चित नहीं करते हैं कि आपके घुमावदार लॉग निर्दिष्ट आकार के भी हैं। निर्दिष्ट आकार के करीब होने के लिए आपको पर्याप्त रूप से लॉग्रोटेट प्रोग्राम को कॉल करने की आवश्यकता है। यह महत्वपूर्ण है।
लॉग फ़ाइलों के लिए जो बहुत तेज़ी से बनते हैं (उदाहरण के लिए सैकड़ों एमबी में), जब तक कि आप उन्हें बहुत बड़ा नहीं चाहते हैं, आपको यह सुनिश्चित करना होगा कि लॉगरोटेट अक्सर कहा जाता है! यह महत्वपूर्ण है।
इसलिए आपकी डिस्क को बहु-गीगाबाइट लॉग फ़ाइलों के साथ भरने से रोकने के लिए आपको यह सुनिश्चित करने की आवश्यकता है कि लॉगरोटेट को अक्सर पर्याप्त कहा जाता है, अन्यथा लॉग रोटेशन आपके साथ काम नहीं करेगा।
Ubuntu पर
, आप आसानी से प्रति घंटा रोटेशन के लिए स्क्रिप्ट /etc/cron.daily/logrotate ले जाकर
/etc/cron.hourly/logrotate या करने के लिए
*/5 * * * * /etc/cron.daily/logrotate
जोड़ने के लिए स्विच कर सकते हैं अपने/आदि/crontab फ़ाइल। इसे हर 5 मिनट चलाने के लिए।
size
विकल्प दैनिक, साप्ताहिक, मासिक समय विकल्पों को अनदेखा करता है। लेकिन & न्यूनतम आकार को ध्यान में रखें।
मैन पेज थोड़ा उलझन में है। यहां मेरी व्याख्या है।
minsize
केवल तभी घूमता है जब फ़ाइल उचित आकार तक पहुंच जाती है और निर्धारित समय अवधि बीत जाती है। उदा। 50 एमबी + दैनिक न्यूनतम करें यदि फ़ाइल दैनिक समय से पहले 50 एमबी तक पहुंच जाती है, तो यह अगले दिन तक बढ़ती रहेगी।
maxsize
घुमाएगा जब लॉग सेट आकार तक पहुंच जाएगा या उपयुक्त समय बीत चुका है। उदा। अधिकतम 50 एमबी + दैनिक। यदि फ़ाइल 50 एमबी है और हम अगले दिन नहीं हैं, तो लॉग घुमाया जाएगा। अगर फ़ाइल केवल 20 एमबी है और हम अगले दिन तक रोल करते हैं तो फ़ाइल घुमाएगी।
size
लॉग> आकार के दौरान घुमाएगा। भले ही प्रति घंटा/दैनिक/साप्ताहिक/मासिक निर्दिष्ट किया गया हो। तो यदि आपके पास आकार 100 एम है - इसका मतलब है कि जब आपकी लॉग फ़ाइल है> 100M लॉग को घुमाया जाएगा यदि यह स्थिति सत्य होने पर लॉग्रोटेट चलाया जाता है। एक बार यह घुमाए जाने के बाद, मुख्य लॉग 0 होगा, और बाद वाला रन कुछ भी नहीं करेगा।
तो ओप के मामले में। Specficially 50 एमबी अधिकतम मैं निम्नलिखित की तरह कुछ उपयोग करेंगे:
/var/log/logpath/*.log {
maxsize 50M
hourly
missingok
rotate 8
compress
notifempty
nocreate
}
जिसका अर्थ है कि वह अधिकतम 8 घंटे लॉग बनायेगा। और इनमें से 8 उनमें से 50 एमबी से अधिक नहीं होंगे। चूंकि वह कह रहा है कि उसे हर दिन बहु गीगाबाइट मिल रहा है और यह मानते हुए कि वे काफी स्थिर दर पर निर्माण करते हैं, और अधिकतम आकार का उपयोग किया जाता है, वह प्रत्येक फ़ाइल के लिए अधिकतम पहुंच के करीब समाप्त हो जाएगा। तो वे प्रत्येक के करीब 50 एमबी की संभावना होगी। उनके द्वारा बनाए गए वॉल्यूम को देखते हुए, उन्हें यह सुनिश्चित करना होगा कि लॉगरोटेट अक्सर लक्ष्य आकार को पूरा करने के लिए पर्याप्त रूप से चलाया जाता है।
चूंकि मैंने प्रति घंटा वहां रखा है, इसलिए हमें लॉग इनोटेट की आवश्यकता होगी ताकि प्रत्येक घंटे कम से कम चल सके। लेकिन चूंकि वे प्रति दिन 2 गीगाबाइट कहते हैं और हम 50 एमबी चाहते हैं ...83 एमबी प्रति घंटे की स्थिर दर मानते हुए। इसलिए आप कल्पना कर सकते हैं कि अगर हम अधिकतम 50 सेट करने के बावजूद लॉग इनोटेट चलाते हैं, तो हम उस मामले में 83 एमबी लॉग के साथ समाप्त हो जाएंगे। तो इस उदाहरण में सेट करें कि हर 30 मिनट या उससे कम तक चलना पर्याप्त होना चाहिए।
सुनिश्चित करें कि प्रत्येक 30 मिनट में लॉग्रोटेट चलाया जाता है।
*/30 * * * * /etc/cron.daily/logrotate
अच्छा। एक छोटा सा नोट, मैंने पाया कि अधिकतम और minsize पुराने distros (जैसे Centos5 और ubuntu 10.10 ... के साथ अच्छी तरह से काम नहीं करता है ... बाद में ईओएल है)। – tobixen