क्या मैन्युअल रूप से एक लॉगोटेट चेक चलाना संभव है?


540

क्या यह कुछ अंतराल पर मैन्युअल रूप से शेड्यूल किए बिना लॉगरोट के एक पुनरावृत्ति को चलाने के लिए संभव है?


3
लॉग्रोट के साथ समस्या यह है कि इसमें एक वैश्विक कॉन्फ़िगरेशन फ़ाइल है, और यह आपको वैश्विक कॉन्फ़िगरेशन फ़ाइल में सेट किए गए विकल्पों को लागू करते समय एक भी लॉग रोटेट सब-कॉन्फ़िगरेशन फ़ाइल नहीं चलाने देता है। यह सिर्फ एक लॉग रोटेशन फ़ाइल जाँच चलाने के लिए एक अच्छा तरीका नहीं है, ठीक उसी तरह जब यह क्रोन से प्रत्येक रात चलता है। यह 'इन लॉग फ़ाइलों की सीमा' विकल्प के साथ कर सकता है, या बेहतर अभी भी, 'वैश्विक कॉन्फ़िगरेशन को चला सकता है, लेकिन केवल इस उप-कॉन्फ़िगरेशन को शामिल करें'।
एंथनी

जवाबों:


716

हाँ: logrotate --force $CONFIG_FILE


115
ध्यान दें कि --forceफ़ाइल (नों) को घुमाया जाएगा भले ही वे निर्दिष्ट मानदंडों को पूरा न करें जैसे कि न्यूनतम, आयु, आदि
xofer

4
यदि आप logetate config फाइल को /etc/logrotate.d/custom.conf में रखते हैं, तो इसका मतलब है, आपको लॉग को स्वचालित रूप से घुमाने के लिए एक आकार / समय निर्दिष्ट करने की आवश्यकता नहीं है? या यदि आप इसे स्वचालित रूप से घुमाने का इरादा नहीं रखते हैं, तो क्या आपको एक अलग फ़ोल्डर में कॉन्फ़िगरेशन को रखना चाहिए?
दमनमैन

18
"Notifempty" मानदंड "--force" द्वारा अनदेखा नहीं किया गया है। इसने मुझे थोड़ी देर के लिए रोक दिया, इसलिए मैंने @xofer के बयान के अपवाद के रूप में इसका उल्लेख किया।
thelogix

16
आप बस logrotate --force /etc/logrotate.d/(केवल निर्देशिका नाम) के साथ सभी को घुमा सकते हैं
23

1
यह सही है कि --forceफाइलें रोटेशन को मजबूर कर देंगी भले ही फाइलें मानदंड (आयु, आकार आदि) को पूरा न करें, लेकिन कृपया विचार करें कि यह वास्तविक समस्याओं को स्पॉट करने का एकमात्र तरीका है जो logrotate -dउभर नहीं पाएगा (उदाहरण के लिए, मेरे पास एक सर्वर था अंतरिक्ष में महीनों से नहीं चलने के कारण अंतरिक्ष ... और धन्यवाद के कारण --forceमुझे पता चल गया कि File existsत्रुटियां थीं। मैंने उन फ़ाइलों को मैन्युअल रूप से हटा दिया है और अब रोटेशन सही ढंग से फिर से काम करता है!
lucaferrario

558

logrotate -d [your_config_file] डीबग मोड को आमंत्रित करता है, आपको एक क्रियात्मक विवरण देता है कि क्या होगा, लेकिन लॉग फ़ाइलों को अछूता छोड़कर।


81
जो लोग यहां आए थे, जैसे प्रश्न के उत्तर की तलाश में "मैं अपने लॉगरेट कॉन्फिडेंस का परीक्षण कैसे कर सकता हूं?" इसे एक उत्तर के रूप में ले सकते हैं, क्योंकि यह सिर्फ
कसौटी पर कसता है

आपके दृष्टिकोण से विचलित नहीं, मैंने कोशिश की logrotate --forceऔर अच्छी तरह से काम किया।
बेन्यामिन जाफरी

122

यदि आप एकल विशिष्ट निर्देशिका या डेमॉन की लॉग फ़ाइलों को बलपूर्वक चलाना चाहते हैं, तो आप आमतौर पर कॉन्फ़िगरेशन ढूंढ सकते हैं /etc/logrotate.dऔर वे स्टैंडअलोन काम करेंगे।

ध्यान रखें कि इसमें निर्दिष्ट वैश्विक कॉन्फ़िगरेशन /etc/logrotate.confलागू नहीं होगा, इसलिए यदि आप ऐसा करते हैं, तो आपको यह सुनिश्चित करना चाहिए कि आप उन सभी विकल्पों को निर्दिष्ट करें जो आप /etc/logrotate.d/[servicename]विशेष रूप से कॉन्फ़िगरेशन फ़ाइल में चाहते हैं ।

आप इसे -dदेखने की कोशिश करेंगे कि क्या होगा:

logrotate -df /etc/logrotate.d/nginx

तब आप चला सकते हैं (उदाहरण के रूप में नेग्नेक्स का उपयोग करके):

logrotate -f /etc/logrotate.d/nginx

और नग्नेक्स लॉग को अकेले घुमाया जाएगा।


1
यह अच्छी तरह से और अच्छा है, लेकिन आपके पास "/etc/logrotate.conf" में कोई भी वैश्विक सेटिंग खो जाती है। मैंने वैश्विक और विशिष्ट लॉगोटेट फ़ाइलों को एक साथ मिलाने के लिए एक स्क्रिप्ट लिखी थी, फिर इस समस्या को हल करने के लिए इसका उपयोग करें। (मेरा उत्तर देखें)।
एंथनी

का उपयोग कर logrotate -d /etc/logrotate.confकिसी भी अन्य शामिल conf फ़ाइलों के माध्यम से चलेंगे।
wassassingham

60

आप इसे वर्बोज़ + फोर्स मोड में चलाना चाह सकते हैं।

logrotate -vf /etc/logrotate.conf


36

सभी लोगो को चलाने का तरीका है:

logrotate -f /etc/logrotate.conf

जो प्राथमिक लॉगोटेट फ़ाइल को चलाएगा, जिसमें अन्य लॉगोट्रेट कॉन्फ़िगरेशन भी शामिल हैं


21

निम्नलिखित आदेश जारी करें, निर्दिष्ट लॉगोटेट को चलाने का तरीका:

logrotate -vf /etc/logrotate.d/custom

विकल्प:

-v: प्रक्रिया दिखाओ

-फ: फोर्सिंग रन

कस्टम: उपयोगकर्ता द्वारा निर्धारित लॉग सेटिंग

जैसे: मोंगोडब-लॉग

# mongodb-log rotate

/data/var/log/mongodb/mongod.log {
    daily
    dateext
    rotate 30
    copytruncate
    missingok
}

प्लस 1 वास्तव में एक संपूर्ण उदाहरण प्रदान करने के लिए। पुनश्च हम कैसे निर्धारित कर सकते हैं कि वास्तव में लॉगट्रेट फाइलों में क्या करता है ?
personal_cloud

7

जिस फ़ाइल को आप परीक्षण करना चाहते हैं, उस पर 'अंतिम घुमाई गई' तारीख को रीसेट करने के लिए /var/lib/logrotate.status को संपादित करें।

फिर चला logrotate YOUR_CONFIG_FILE

या आप --force ध्वज का उपयोग कर सकते हैं, लेकिन logrotate.status का संपादन आपको क्या करता है और घुमाया नहीं जाता है पर अधिक सटीकता देता है।


यह /var/lib/logrotate.statusफ़ाइल डेबियन निचोड़ पर मौजूद नहीं है।
लशाए

कोशिश करें / var / lib / logrotate / स्थिति। मुझे यकीन नहीं है कि यह एक डेबियन / रेडहैट चीज़ है, या अगर मैं डालूँ "।" जहाँ मुझे "/" रखना चाहिए था।
बेन एवलिंग

2

समस्या को हल करने के लिए एक शेल स्क्रिप्ट बनाई।

http://www.ict.griffith.edu.au/anthony/software/#logrotate_one

यह स्क्रिप्ट "/etc/logrotate.d" में पाई गई एकल लॉगोट्रेट सब-कॉन्फ़िगरेशन फ़ाइल चलाएगी, लेकिन वैश्विक कॉन्फ़िगरेशन फ़ाइल "/etc/logrotate.conf" से वैश्विक सेटिंग शामिल करें। आप इसका परीक्षण करने के लिए अन्य ओटेशन का भी उपयोग कर सकते हैं ...

उदाहरण के लिए...

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