2015-06-30 7 views
7

मैं लॉगरोटेट करने के लिए नया हूं। जब कॉन्फ़िगरेशन "डेटफॉर्मेट" संपत्ति पर आती है, तो ऐसा लगता है कि लॉग्रोटेट स्ट्रेटटाइम "% एच" का समर्थन नहीं करता है। यहाँ config है: { दैनिक बारी बारी से 2 आकार 3M missingok notifempty dateext DateFormat -% Y% m% d_% एच:% M:% S ... }लॉग्रोटेट डेटफॉर्मेट% एच का समर्थन नहीं करता है:% एम:% एस

घुमाया फ़ाइल प्रारूप इस तरह दिखता है: uwsgi_dev.log-20150630_% एच:% एम:% एस, लेकिन मुझे सटीक "घंटे मिनट और सेकंड" चाहिए।

धन्यवाद

उत्तर

4

% एच के लिए समर्थन संस्करण 3.9.0 में जोड़ा गया है।

DateFormat format_string: पहले के संस्करणों में, logrotate strftime "% एच का समर्थन नहीं किया strftime (3) समारोह अंकन समान का उपयोग कर dateext के लिए एक्सटेंशन निर्दिष्ट केवल% Y% m% d और% s विनिर्देशक हैं। की अनुमति दी।

logrotate आदमी पृष्ठ से http://linux.die.net/man/8/logrotate

हालांकि, अगर आप DateFormat स्ट्रिंग, जो 1970-01-01 के बाद से सेकंड की संख्या है में %s उपयोग कर सकते हैं। आप dateformat -%Y%m%d-%s सेट कर सकते हैं। यह उत्पादन करेगा प्रत्येक बार लॉग घुमाए जाने पर अद्वितीय फ़ाइल नाम, तो आप फ़ाइल को दिन में कई बार घुमा सकते हैं। दुर्भाग्यवश, %s भाग पढ़ने में आसान नहीं होगा, लेकिन आप इसे आसानी से perl -e "print scalar(localtime(1451214849))" के साथ एक पठनीय तिथि में परिवर्तित कर सकते हैं।

कुछ सिस्टमों पर, date प्रोग्राम date -d @1451214849 (उदा। जीएनयू date) के साथ आसानी से ऐसा रूपांतरण करने की अनुमति देता है। अधिकांश प्रणालियों (जैसे सोलारिस date सहित) पर, आपको date -d "1970-01-01 + 1451214849 sec" जैसे सिंटैक्स के साथ भाग्य हो सकता है। ध्यान दें कि Busybox date केवल @ चाल का समर्थन करता है लेकिन दूसरे उदाहरण की जटिल अभिव्यक्तियों का समर्थन नहीं करता है।

+1

% एच के लिए समर्थन संस्करण [3.9.0] में जोड़ा गया था (https://github.com/logrotate/logrotate/blob/master/CHANGES)। –

+1

धन्यवाद इवान, अच्छा बिंदु; मैंने अपना जवाब संपादित किया। –

संबंधित मुद्दे