मैं लॉग को प्रति घंटा लॉग को घुमाने के लिए लॉगरोट कैसे सेट कर सकता हूं?


23

यूनिक्स और लिनक्स प्रशासन हैंडबुक अनुसार और manके लिए, logrotate विकल्प है daily, weeklyऔर monthlyहै, लेकिन वहाँ एक जोड़ने के लिए एक रास्ता है hourlyविकल्प?

इस ब्लॉग पोस्ट में उल्लेख किया गया है कि आप size 1समय विकल्प (जैसे :) को सेट और हटा सकते हैं dailyऔर फिर मैन्युअल रूप से कॉल logrotateकर सकते हैं cron- मुझे लगता है कि कुछ ऐसा है

logrotate -f /etc/logrotate.d/my-hourly-file

लेकिन वहाँ लॉग लॉग प्रति घंटा के लिए एक और अधिक सुंदर समाधान है?


ज़रूर। आपका ऑपरेटिंग सिस्टम क्या है, कौन सा संस्करण है?
निल्स

ubuntu 10.04 और 11
cwd

जवाबों:


20

आपके ओएस पर निर्भर करता है। कुछ (सभी?) लिनक्स वितरण के पास एक निर्देशिका है /etc/cron.hourlyजहां आप हर घंटे निष्पादित होने के लिए क्रोन नौकरियों को रख सकते हैं।

दूसरों की एक निर्देशिका है /etc/cron.d/। वहां आप क्रोन-जॉब्स डाल सकते हैं जिन्हें किसी विशेष उपयोगकर्ता के रूप में निष्पादित किया जा सकता है, साथ ही एक कॉन्टैब प्रविष्टि की सामान्य क्रोन-सेटिंग्स (और आपको उपयोगकर्ता नाम निर्दिष्ट करना होगा)।

यदि आप मानक लॉग रोटेटिंग स्क्रिप्ट के बजाय इनमें से किसी का भी उपयोग करते हैं, तो /etc/cron.daily/आपको उस स्क्रिप्ट को वहां और cp /dev/nullमूल स्थिति में कॉपी करना चाहिए । इसके अलावा यह एक लॉगोटेट पैच-अपडेट द्वारा पुन: सक्रिय किया जाएगा।

उचित प्रति घंटा रोटेशन के लिए, यह भी ध्यान रखें कि dateextनिर्देश सेट नहीं है। यदि ऐसा है, तो डिफ़ॉल्ट रूप से पहली घुमाई गई फ़ाइल को YYYYMMDD की तरह वर्तमान तिथि का विस्तार मिलेगा। फिर, दूसरी बार लॉगोट्रेट उसी दिन के भीतर सक्रिय हो जाएगा, यह केवल रोटेशन को छोड़ देता है, भले ही sizeदहलीज पार हो गई हो।

कारण यह है कि फ़ाइल का नया नाम पहले से ही घुसा हुआ है और लॉगोटेट मौजूदा पुरानी फ़ाइल में सामग्री को जोड़ नहीं सकता है। RHEL और CentOS पर उदाहरण के लिए, dateextनिर्देश डिफ़ॉल्ट रूप से दिया जाता है /etc/logrotate.conf। उस लाइन को हटाने या टिप्पणी करने के बाद, घुमाए गए फ़ाइलों को केवल rotateमूल्य तक पहुंचने तक एक्सटेंशन के रूप में एक रनिंग नंबर मिलेगा । इस तरह, एक दिन में कई चक्कर लगाना संभव है।


5

केवल निल्स उत्तर में जोड़ने के लिए, यदि logrotateडेबियन या उबंटू बॉक्स पर स्क्रिप्ट का स्थान बदल रहा है, तो संभवतः dpkg-divertफ़ाइल को कॉपी /dev/nullकरने और मूल स्थिति में कॉपी करने के बजाय इसका उपयोग करना अधिक सुरक्षित है :

dpkg-divert --add --rename --divert /etc/cron.hourly/logrotate /etc/cron.daily/logrotate

मुझे इस बारे में पता नहीं था और मैं सालों से उबंटू का इस्तेमाल कर रहा हूं। धन्यवाद। :)
वागणी

2

एक अन्य विकल्प लॉगट्रेट कमांड को क्रॉस्टैब सूची में जोड़ देगा। फिर यह हर घंटे के लिए निष्पादित करेगा।

crontab -e

Crontab सूची में नीचे पंक्ति जोड़ें

0 * * * * /usr/sbin/logrotate /etc/logrotate.d/my-hourly-file
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.