2010-01-22 8 views
404

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

+2

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

उत्तर

537

हाँ: logrotate --force $CONFIG_FILE

+82

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

+4

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

+1

+1 धन्यवाद यह वही है जो मैं – Mike

378

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

+42

के साथ सभी को घुमा सकते हैं, जो यहां आए थे, जैसे कि" मैं अपने लॉग्रोटेट conf का परीक्षण कैसे कर सकता हूं? " इसे एक उत्तर के रूप में ले जा सकते हैं, क्योंकि यह केवल – kommradHomer

+1

को टेस्ट करता है, यह वास्तव में एक पूर्ण उदाहरण प्रदान करने के लिए स्वीकृत उत्तर – storm

29

logrotate को चलाने के लिए तरीका है:

logrotate -f /etc/logrotate.conf 

कि प्राथमिक logrotate फ़ाइल है, जो अन्य logrotate विन्यास के रूप में अच्छी तरह से शामिल हैं चलेंगे

50

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

logrotate -vf /etc/logrotate.conf

87

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

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

आप को देखने के लिए क्या होगा -d के साथ बाहर यह कोशिश कर सकते हैं:

logrotate -df /etc/logrotate.d/nginx 

तो फिर तुम (एक उदाहरण के रूप nginx का उपयोग) चला सकते हैं:

logrotate -f /etc/logrotate.d/nginx 

और nginx लॉग अकेला हो जाएगा घुमाया।

19

समस्या निम्न आदेश, निर्दिष्ट logrotate को चलाने के लिए जिस तरह से:

logrotate -vf /etc/logrotate.d/custom 

विकल्प:

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

-f: मजबूर कर रन

कस्टम: उपयोगकर्ता परिभाषित लॉग सेटिंग

उदाहरण: mongodb-log

# mongodb-log rotate 

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

प्लस 1 होना चाहिए। पीएस हम कैसे निर्धारित कर सकते हैं [फाइलों में वास्तव में क्या लॉग्रोटेट करता है] (https://stackoverflow.com/questions/46578307/)? –

1

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

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

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

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

logrotate_one -d syslog 
0

संपादित/var/lib/logrotate।लॉग फ़ाइल पर 'अंतिम घुमावदार' तिथि को रीसेट करने की स्थिति जिसे आप परीक्षण करना चाहते हैं।

फिर logrotate YOUR_CONFIG_FILE चलाएं।

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

संबंधित मुद्दे