यादृच्छिक समय पर मेरा CentOS logrotate क्यों चलता है?


10

मैंने एक logrotateकॉन्फ़िगरेशन फ़ाइल डाल दी /etc/logrotate.d/और लॉग को लगातार समय पर घूमने की उम्मीद की; हालांकि, वे नहीं करते ... लॉग रोटेशन समय यादृच्छिक रूप से +/- एक घंटे लगता है।

लॉग रोटेशन समय यादृच्छिक क्यों शुरू होता है, और मैं इसे कैसे बदल सकता हूं?


सूचनात्मक: मेरी लॉगरोट कॉन्फिग फ़ाइल इस तरह दिखती है ...

/opt/backups/network/*.conf {
        copytruncate
        rotate 30
        daily
        create 644 root root
        dateext
        maxage 30
        missingok
        notifempty
        compress
        delaycompress
        postrotate
            ## Create symbolic links in daily/
            PATH=`/usr/bin/dirname $1`;
            FILE=`/bin/basename $1`;
            /bin/ln -s $1 $PATH/daily/$FILE
        endscript
}

जवाबों:


10

कुंजी जान रही है कि CentOS स्क्रिप्ट को /etc/cron.ministrdaily,weekly,monthly} में anacron... /etc/anacrontabसे सेटिंग कर रहा है RANDOM_DELAY, जो आपसे क्या उम्मीद कर सकता है (यह RANDOM_DELAYकाम शुरू करने से पहले मिनटों तक देरी करता है) ...

# /etc/anacrontab: configuration file for anacron

# See anacron(8) and anacrontab(5) for details.

SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# the maximal random delay added to the base delay of the jobs
RANDOM_DELAY=45
# the jobs will be started during the following hours only
START_HOURS_RANGE=3-22

#period in days   delay in minutes   job-identifier   command
1       5       cron.daily              nice run-parts /etc/cron.daily
7       25      cron.weekly             nice run-parts /etc/cron.weekly
@monthly 45     cron.monthly            nice run-parts /etc/cron.monthly

समस्या को सेट RANDOM_DELAY=0/ START_HOURS_RANGE=3निर्धारित किया जा रहा है ...

संपादित करें

आगे के विचार के बाद, मैं anacronसामान्य विक्सी को हटाने और स्थापित करने जा रहा हूं cron...


याद रखें कि यदि आपका सर्वर किसी कारण से बंद है जब एनाक्रॉन को चलाना है, तो यह सिस्टम के शुरू होने के कुछ समय बाद चलेगा। तो आप अभी भी अलग-अलग समय के रूप में लॉग रोटेशन प्राप्त कर सकते हैं। शायद एक बड़ा मुद्दा नहीं है, लेकिन ध्यान देने योग्य है।
गुस्सा

START_HOURS_RANGE को एकल मान (= 3) पर सेट करने से काम नहीं चलेगा, क्योंकि यह संस्करण एकल श्रेणी नहीं है। तो यह ऊपर के उदाहरण में 3-4 होना चाहिए।
स्लाविक

6

जवाब नहीं, लेकिन मैं हाल ही में एक और कारण के लिए यह पता लगाने की कोशिश कर रहा था और रेडहैट 6, सेंटोस, आदि रन क्रोन पर कोई दस्तावेज नहीं ढूंढ सका। यहाँ मैं क्या इंजीनियर उल्टा है:

  1. crond अभी भी सिस्टम स्टार्टअप पर चलता है - यह सभी फाइलों को लोड करता है /etc/cron.d
  2. /etc/cron.d/0hourly में सभी फ़ाइलें चलाता है /etc/cron.hourly
  3. /etc/cron.hourly/0anacron रन anacron
  4. anacron लोड करता है /etc/anacrontab
  5. /etc/anacrontabरन (के माध्यम से run-parts) /etc/cron.daily, /etc/cron.weeklyऔर/etc/cron.monthly

तो, यह पिछले संस्करणों की तुलना में अधिक जटिल है।

प्रति घंटा, साप्ताहिक और मासिक प्रविष्टियों को /etc/crontab(जो अब खाली है) जोड़कर पुराने व्यवहार को पुनर्स्थापित करना संभव है , लेकिन anacrontabइसे भी अद्यतन करने की आवश्यकता होगी। यह भविष्य के अपडेट को तोड़ भी सकता है और नहीं भी ...


4

अन्य उत्तर कवर करते हैं कि कैसे लेकिन जरूरी नहीं कि क्यों । इसका कारण है अपने बुनियादी ढांचे को मारने से एक साथ रात्रिकालीन क्रोन नौकरियों को रखना। (कल्पना साझा भंडारण, या शायद एक वीएम होस्ट पर चलने वाले 1000 सर्वर, या केवल रात की नौकरी जो कुछ नेटवर्क सेवा को हिट करते हैं।)

मैं हमेशा अपने सिस्टम पर लॉग में रोटेशन के लिए इस समस्या को हल करता हूं, विशिष्ट लॉग रोटेशन जॉब को cron.dailyएक हार्ड-कोडित समय के साथ एक प्रविष्टि से स्थानांतरित करके cron.d। इस तरह, आपको अभी भी अपडेटेड जैसी सेवाओं के लिए कंपित रन मिलते हैं जहां समय वास्तव में आवश्यक नहीं है, लेकिन लॉग रोटेशन के लिए लगातार समय है।

निश्चित रूप से, जब आप एक निश्चित आकार के हो जाते हैं, तो आप चाहते हैं कि आपके सभी लॉग किसी भी तरह से एक पर्यवेक्षक को होस्ट भेज दें, और फिर अलग-अलग नोड्स पर फ़ाइलों के रोटेशन का समय कम महत्वपूर्ण नहीं है, क्योंकि वे सिर्फ उसी के लिए हैं सुविधा (आमतौर पर फ़ाइल की पूंछ के बाद) या अंतिम उपाय के रूप में। फिर, आप निश्चित रूप से व्यवस्थित होने के लिए अपने लॉग सर्वर पर रोटेशन सेट करेंगे।

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