Logrotate and Open Files


21

लॉगरोट खुली फ़ाइलों को कैसे संभालता है? क्या लॉग फाइल को रोटेट कर सकता है जो एक प्रक्रिया खुली है?

जवाबों:


7

उन अनुप्रयोगों के लिए जो लॉरी से संकेतों को स्वीकार नहीं करते हैं जैसा कि रोरी ने वर्णित किया है, मैं कुछ तरीकों का उपयोग करता हूं।

  1. कॉपीरुनेट विकल्प का उपयोग करें
  2. सेवा को पुनरारंभ करने के लिए पोस्ट-रोटेट स्टेटमेंट जोड़ें

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


बहुत देर हो चुकी है के लिए क्षमा करें, लेकिन मुझे लगता है कि मैं इस समस्या की तलाश में दूसरों को कुछ समय बचा सकता हूं। इसे हल करने के लिए एक अन्य दृष्टिकोण पर ध्यान दें। unix.stackexchange.com/a/122942/189725
विक्टर

17

ऐसा लगता है कि मैं निम्नलिखित चाहता हूं, लेकिन अभी भी विषय पर किसी की विशेषज्ञता में दिलचस्पी है:

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. 

1
यह "cp something.log something.log.1 ;:> something.log" करने की तरह है, इसलिए फ़ाइल खाली हो जाती है, लेकिन उस पर फ़ाइलहैंड नहीं टूटता है। समस्या 2 कमांडों के बीच का समय है, आप लॉग की कुछ लाइन को ढीला कर सकते हैं
त्रिज्या

5

logrotate लॉग फाइल को फिर से खोलने के लिए प्रक्रिया को सही संकेत भेजेगा। यह अपाचे या mysql जैसी चीजों के लिए बॉक्स से बाहर काम करता है।

आप इसे अपाचे के लिए पोस्टरोकेट स्क्रिप्ट में देख सकते हैं। यदि आपके पास अपना डेमॉन है, और आप इसके साथ काम करना चाहते हैं, तो सुनिश्चित करें कि यह एक निश्चित संकेत के लिए सुनता है और लॉग फ़ाइलों को फिर से खोलता है।

यदि आप प्रोग्राम को बदल नहीं सकते हैं, तो आप देख सकते हैं कि डेमॉन में लॉग को स्वचालित रूप से फ्लश करने का एक तरीका है। या सर्वर को बंद करने वाला एक प्रिरोटेट जोड़ें, और एक ऐसा पोस्टरोट जो इसे फिर से शुरू करता है।


ठीक है, मुझे नहीं लगता कि मुझे ऐसा करने के लिए डेवलपर्स मिलेंगे, लेकिन यह जानने के लिए अच्छा है कि मानक क्या है :-)
काइल ब्रान्ड
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.