लॉगरोट खुली फ़ाइलों को कैसे संभालता है? क्या लॉग फाइल को रोटेट कर सकता है जो एक प्रक्रिया खुली है?
लॉगरोट खुली फ़ाइलों को कैसे संभालता है? क्या लॉग फाइल को रोटेट कर सकता है जो एक प्रक्रिया खुली है?
जवाबों:
उन अनुप्रयोगों के लिए जो लॉरी से संकेतों को स्वीकार नहीं करते हैं जैसा कि रोरी ने वर्णित किया है, मैं कुछ तरीकों का उपयोग करता हूं।
एक का उपयोग करने का निर्णय लॉग फ़ाइलों के आकार और निर्बाध लॉग की आवश्यकता दोनों पर निर्भर करता है। यह आपके अपने हिस्से पर एक जोखिम विश्लेषण होने जा रहा है। हालांकि, एक उदाहरण देने के लिए, मैं कुछ लॉग पर पोस्ट-रोटेट पुनरारंभ का उपयोग करता हूं जहां मुझे वास्तव में एक कॉपीरूट का उपयोग करना चाहिए। हालाँकि, फाइलें अक्सर कई गिग्स की होती हैं और कॉपी में इतना लंबा समय लग सकता है कि हर रात एक या दो हारना बेहतर होता है।
ऐसा लगता है कि मैं निम्नलिखित चाहता हूं, लेकिन अभी भी विषय पर किसी की विशेषज्ञता में दिलचस्पी है:
copytruncate
Truncate the original log file to zero size in place after cre‐
ating a copy, instead of moving the old log file and optionally
creating a new one.
logrotate लॉग फाइल को फिर से खोलने के लिए प्रक्रिया को सही संकेत भेजेगा। यह अपाचे या mysql जैसी चीजों के लिए बॉक्स से बाहर काम करता है।
आप इसे अपाचे के लिए पोस्टरोकेट स्क्रिप्ट में देख सकते हैं। यदि आपके पास अपना डेमॉन है, और आप इसके साथ काम करना चाहते हैं, तो सुनिश्चित करें कि यह एक निश्चित संकेत के लिए सुनता है और लॉग फ़ाइलों को फिर से खोलता है।
यदि आप प्रोग्राम को बदल नहीं सकते हैं, तो आप देख सकते हैं कि डेमॉन में लॉग को स्वचालित रूप से फ्लश करने का एक तरीका है। या सर्वर को बंद करने वाला एक प्रिरोटेट जोड़ें, और एक ऐसा पोस्टरोट जो इसे फिर से शुरू करता है।