Logrotate: आउटपुट फाइल को पोस्ट्रोटेट में कैसे एक्सेस करें


15

मैं Nginxरोज (साथ dateext) लॉग्स घुमाता हूं । रोटेशन के बाद मैं उस दिन के लिए फ़ाइल को पार्स करना चाहता हूं जो अभी पास हुआ है और Nginx सर्वर द्वारा दी गई त्रुटियों की संख्या के साथ एक ईमेल संकलित करें।

मैं आउटपुट फाइल को पोस्टरोकेट / एंडस्क्रिप्ट अनुभाग में कैसे एक्सेस कर सकता हूं logrotate?


क्या आप अधिक विस्तृत कर सकते हैं?
खालिद

किया हुआ। क्षमा करें, मुझे लगा कि यह पर्याप्त स्पष्ट है। :)
ibz

जवाबों:


4

मैं किसी भी वैरिएबल के बारे में नहीं जानता जो आप उपयोग कर सकते हैं यदि आप जो खोज रहे हैं। हालाँकि, लॉग को घुमाने के तुरंत बाद, आपको ठीक-ठीक नाम पता होना चाहिए कि फ़ाइल को रोटेशन के लिए आपके द्वारा निर्धारित कॉन्फ़िगरेशन ( /var/log/somefile.1या जैसे) के आधार पर घुमाया गया है ।

शायद इसका उत्तर देना आसान होगा यदि आपने वास्तविक समस्या का वर्णन किया है जिसे आप हल करने की कोशिश कर रहे हैं?


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

3
लगता है कि लार्क्स वास्तव में आप क्या चाहते हैं पर हिट किया है। $ 1 वह चर है जिसकी आप तलाश कर रहे हैं।
चिह्नित करें

17

यदि आप "शेयर्डस्क्रिप्ट" निर्देश का उपयोग नहीं कर रहे हैं, तो आपकी पोस्टोटेट स्क्रिप्ट प्राप्त होती है, $ 1 के रूप में, वह फ़ाइल जो लॉग रोटेशन को ट्रिगर करती है। यह मदद कर सकता है यदि आप एक से अधिक जेनेरिक श्लोक के साथ एक सामान्य लिपि का उपयोग करने का प्रयास कर रहे हैं। यह है, इस तरह से कुछ दिया:

/var/log/sample1.log /var/log/sample[23].log {
  ..config...
}

यदि किसी भी मिलान वाली फ़ाइलों को घुमाया जाना चाहिए, तो आपकी स्क्रिप्ट को $ 1 सेट के साथ "/var/log/sample1.log", "/var/log/sample2.log", या "/var/log/sample3 .log" पर बुलाया जाएगा। " के रूप में उपयुक्त। फिर आप उस फ़ाइल को खोजने के लिए ".1" जोड़ सकते हैं जो अभी घुमाया गया था।

यदि आप "साझाकरण" विकल्प का उपयोग करते हैं, तो आपको स्क्रिप्ट को $ 1 सेट के साथ "/var/log/sample1.log/var/log/sample.2323.log" पर बुलाया जाएगा (जो आपको किसी विशेष मंचन की पहचान करने में मदद करेगा लेकिन सटीक फ़ाइल नहीं है)।

उम्मीद है कि यह आपको शुरू करने के लिए एक जगह देता है। ध्यान दें कि यह केवल logrotate> v3.7.5 के लिए काम करेगा।


1
हैंडी। असल में, प्री और पोस्ट-रोटेट स्क्रिप्ट दोनों रोटेट किए गए फ़ाइल नाम को $ 1 के रूप में प्राप्त करते हैं, जो कि वास्तव में प्रश्न पूछता है।
चिह्नित करें

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