जवाबों:
logrotate
crontab
काम करने के लिए उपयोग करता है। यह निर्धारित कार्य है, डेमॉन नहीं है, इसलिए इसके कॉन्फ़िगरेशन को फिर से लोड करने की आवश्यकता नहीं है।
जब crontab
निष्पादित होता है logrotate
, तो यह आपकी नई कॉन्फ़िगरेशन फ़ाइल का स्वचालित रूप से उपयोग करेगा।
यदि आपको अपने विन्यास का परीक्षण करने की आवश्यकता है, तो आप logrotate
कमांड के साथ अपने दम पर निष्पादित कर सकते हैं :
logrotate /etc/logrotate.d/your-logrotate-config
या के रूप में टिप्पणी में उल्लेख किया है, की पहचान करने का उल्लेख SLM का जवाब एक सटीक cron.daily स्पष्टीकरण के लिएlogrotate
आदेश के उत्पादन में लाइन crontab -l
और कमांड लाइन पर अमल
crontab -l
और इसे निष्पादित करने के लिए है।
logrotate
-d
परीक्षण (या "डिबगिंग") के लिए एक विकल्प है, मैं इसे कम से कम एक बार उसी के साथ चलाने की सलाह दूंगा।
अधिकांश logrotate
सेटअप जो मैंने विभिन्न डिस्ट्रोस पर देखे हैं , उनमें से बाहर चलाता है /etc/cron.daily
। वहाँ एक शेल लिपि है जिसे उपयुक्त नाम दिया गया है logrotate
।
$ ls -l /etc/cron.daily/logrotate
-rwxr-xr-x 1 root root 180 May 18 2011 /etc/cron.daily/logrotate
यदि आप इसे मैन्युअल रूप से चलाना चाहते हैं तो बस स्क्रिप्ट को रूट के रूप में चलाएं:
$ sudo /etc/cron.daily/logrotate
यदि आप आमतौर पर वहां मौजूद स्क्रिप्ट पर एक नज़र डालते हैं, तो यह आपको दिखाता है कि आप अपनी कॉन्फ़िगरेशन फ़ाइल के पथ को logrotate
केवल चलाकर कैसे मैन्युअल रूप से चला सकते हैं logrotate
।
#!/bin/sh
/usr/sbin/logrotate /etc/logrotate.conf
EXITVALUE=$?
if [ $EXITVALUE != 0 ]; then
/usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"
fi
exit 0
यह क्रोन के माध्यम से स्वचालित होना चाहिए। आप इसे अपने परिवर्तनों का परीक्षण करने के लिए बाध्य कर सकते हैं।
वैश्विक लोगो के लिए:
sudo logrotate -v -f /etc/logrotate.conf
एक एकल फ़ाइल के लिए:
sudo logrotate -v -f /etc/logrotate.d/someapp.conf
-f
बल रोटेशन के लिए, -d
डिबग के लिए भी है, जो कि ड्राई रन भी है, यह सब कुछ प्रिंट करेगा जो उसने किया होगा लेकिन वास्तव में ऐसा नहीं करेगा।
logrotate
दिन में एक बार चलाने के लिए निर्धारित है।