हम वर्तमान में Ubuntu 12.04 LTS से 14.04 LTS तक रेल एप्लिकेशन सर्वर पर अपने माणिक पर अपग्रेड कर रहे हैं, और ध्यान दिया है कि लॉग फाइलें अब घूमती नहीं हैं।
दोनों मशीनों पर हमारे पास /var/app-name/config/logrotateहमारे यूनिक्स उपयोगकर्ता के पास एक फाइल है deployer, जिसमें एक मान्य लॉगोटेट फाइल इस प्रकार है:
/var/app-name/log/*.log {
daily
rotate 365
delaycompress
compress
dateext
dateformat -%Y%m%d
missingok
copytruncate
}
यह तो /etc/logrotate.d/निर्देशिका में समरूप हैapp-name
हमारे उबुन्टु 12.04 सर्वर पर हमारे पास 3.7.8 लॉगोट्रेट है जो ठीक चलता है। यह var/app-name/log/निर्देशिका में चला जाता है और लॉग आउट फ़ाइलों को घुमाता है
लेकिन उबंटू 14.04 सर्वर पर हमारे पास 3.8.7 लोगरोट है, जो हमारे आवेदन के लिए लॉगफाइल्स को घुमाता नहीं है।
जब मैं इसे डीबग करता हूं तो मुझे sudo logrotate -d -f /etc/logrotate/.confनिम्न आउटपुट मिलते हैं:
Ignoring /etc/logrotate.d/app-name because the file owner is wrong (should be root).
इस कोड में नीचे दिए गए, ऐसा लगता है कि यह परिवर्तन 3.8.x रिलीज़ स्ट्रीम के लिए जोड़ा गया था: https://github.com/demands/logrotate/commit/b8ce386a969c60e5c8ee78023624a1ba0aab1526
अगर मैं बदल फ़ाइल का स्वामित्व सांकेतिक रूप से लिंक करने के लिए /var/app-name/config/logrotateकरने के लिए rootउसे फिर से काम करने के लिए शुरू होता है। लेकिन यह फ़ाइल मेरे आवेदन का हिस्सा है, और हम इस स्थिति में उपयोग करने वाले कैपिस्ट्रानो परिनियोजन फ्रेमवर्क द्वारा बनाए गए हैं, मुझे इसके स्वामित्व में परिवर्तन नहीं करना होगा, जब यह ठीक काम करता था।
तो लॉगरिडेट द्वारा अनुशंसित / समर्थित सिमिंकड कॉन्फिग फाइल हैं?
और यदि ऐसा है, तो क्या इसे मेरी फ़ाइल (स्वामित्व वाली deployer) का उपयोग करने से मना कर दिया जाना चाहिए, जिसे /etc/logrotate.dनिर्देशिका में सम्मिलित किया गया है , बग के रूप में देखा जाए?
या क्या आवेदन-विशिष्ट लॉग रोटेशन के लिए एक और अनुशंसित दृष्टिकोण है?
( यूनिक्स StackExchange पर भी पूछा गया )