उस आदमी का पेज logrotateकहता है:
It can be used when some program cannot be told to close its logfile
and thus might continue writing to the previous log file for some
time.
मैं इससे भ्रमित हूं। यदि किसी प्रोग्राम को उसके लॉगफाइल को बंद करने के लिए नहीं कहा जा सकता है, तो वह हमेशा के लिए लिखना जारी रखेगा , कुछ समय के लिए नहीं । यदि संपीड़न को अगले रोटेशन चक्र पर स्थगित कर दिया जाता है, तो प्रोग्राम अगले रोटेशन चक्र के बाद भी उस फ़ाइल पर लिखना जारी रखता है। समस्या को कैसे हल कर रहा है?
मेरी समझ यह है कि copytruncateजब प्रोग्राम को लॉगफ़ाइल को बंद करने के लिए नहीं कहा जा सकता है तो इसका उपयोग किया जाना चाहिए। मुझे पता है कि जब कॉपी चल रही होती है तो लॉगफ़ाइल को लिखा गया कुछ डेटा खो जाता है।
मैं CouchDB के लिए logrotate फ़ाइल देख रहा था, और यह दोनों के लिए किया था copytruncateऔर delaycompressविकल्प।
/usr/local/couchdb-1.0.1/var/log/couchdb/*.log {
weekly
rotate 10
copytruncate
delaycompress
compress
notifempty
missingok
}
ऐसा लगता है कि delaycompressजब copytruncateपहले से ही है तो इसका उपयोग करने का कोई मतलब नहीं है। मुझे किसकी याद आ रही है?
copytruncate, तो यह लॉगफाइल को बंद करने के लिए प्रोग्राम को बताने की कोई आवश्यकता नहीं है। तो क्या इसकेdelaycompressसाथ निर्दिष्ट करना अर्थहीन हैcopytruncate?