लॉग-रोटेट परिवर्तन को प्रभावी बनाने के लिए कैसे करें


99

मैंने RHEL 6 के लिए लॉग-रोटेट कॉन्फ़िगरेशन बदलने के लिए इस लिंक का अनुसरण किया

जब मैंने फ़ाइल को कॉन्फ़िगर करने के लिए परिवर्तन किया, तो मुझे इसे प्रभावी करने के लिए क्या करना चाहिए?

जवाबों:


139

logrotatecrontabकाम करने के लिए उपयोग करता है। यह निर्धारित कार्य है, डेमॉन नहीं है, इसलिए इसके कॉन्फ़िगरेशन को फिर से लोड करने की आवश्यकता नहीं है।
जब crontabनिष्पादित होता है logrotate, तो यह आपकी नई कॉन्फ़िगरेशन फ़ाइल का स्वचालित रूप से उपयोग करेगा।
यदि आपको अपने विन्यास का परीक्षण करने की आवश्यकता है, तो आप logrotateकमांड के साथ अपने दम पर निष्पादित कर सकते हैं :

logrotate /etc/logrotate.d/your-logrotate-config

या के रूप में टिप्पणी में उल्लेख किया है, की पहचान logrotateआदेश के उत्पादन में लाइन crontab -lऔर कमांड लाइन पर अमल करने का उल्लेख SLM का जवाब एक सटीक cron.daily स्पष्टीकरण के लिए


1
बस अपने जवाब में जोड़ने के लिए, क्रोन प्रविष्टि logrotateदिन में एक बार चलाने के लिए निर्धारित है।
एमकेसी

@ केतन, इसलिए, मैं इसे तुरंत कैसे प्रभावित कर सकता हूं? धन्यवाद
BufBills

निश्चित नहीं। एक संभावना crontab के माध्यम से इसी प्रविष्टि को खोजने crontab -lऔर इसे निष्पादित करने के लिए है।
mcc

2
यदि आप चाहते हैं कि यह प्रभावी हो तो तुरंत क्रोन आफ्टरवर्ड चलाएं।
स्लम

2
logrotate-dपरीक्षण (या "डिबगिंग") के लिए एक विकल्प है, मैं इसे कम से कम एक बार उसी के साथ चलाने की सलाह दूंगा।
FrustratedWithFormsDesigner 16

36

अधिकांश 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

31

यह क्रोन के माध्यम से स्वचालित होना चाहिए। आप इसे अपने परिवर्तनों का परीक्षण करने के लिए बाध्य कर सकते हैं।

वैश्विक लोगो के लिए:

sudo logrotate -v -f /etc/logrotate.conf

एक एकल फ़ाइल के लिए:

sudo logrotate -v -f /etc/logrotate.d/someapp.conf

11
-fबल रोटेशन के लिए, -dडिबग के लिए भी है, जो कि ड्राई रन भी है, यह सब कुछ प्रिंट करेगा जो उसने किया होगा लेकिन वास्तव में ऐसा नहीं करेगा।
ThorSummoner

5

मेरे CentOS 6.5 पर logrotatefor nginx की स्थापना के लिए मशीन मुझे यह करना पड़ा:

logrotate /etc/logrotate.d/nginx

और फिर मैंने जाँच की कि क्या logrotate इस तरह से मेरे नए nginx config की देखभाल कर रहा है:

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