यदि यह एक सतत चिंता होने जा रहा है, तो आपको logrotate पर एक नज़र रखना चाहिए क्योंकि यह आपके लिए यह कर सकता है।
मुझे echo > file.log
के बारे में पता नहीं था, हालांकि यह समझ में आता है। मैंने हमेशा cat /dev/null > file.log
का उपयोग किया है।
इसके अलावा, यह ध्यान दिया जाना चाहिए कि यह बहुत महत्वपूर्ण है कि लॉग फ़ाइल को हटाने के लिए महत्वपूर्ण नहीं है क्योंकि इसे खोलने वाला प्रोग्राम फ़ाइल को लिखना जारी रखेगा। यह पता लगाना बहुत मुश्किल है कि आपकी हार्ड ड्राइव की जगह क्यों चली गई है!
स्रोत
2009-02-26 01:20:29
मैंने पूरी तरह से जांच नहीं की है, लेकिन क्या इस दृष्टिकोण में लॉग एंट्री के बीच में छंटनी का मौका नहीं है, इस प्रकार लॉग फ़ाइल में त्रुटियां पेश कर रही हैं? मुझे यह समाधान पसंद है (विशेष रूप से मेरे सामान्य लिनक्स ज्ञान में जोड़ने के लिए), लेकिन जो मैं देख सकता हूं, @ tjanofsky का समाधान अधिक मजबूत है। – rinogo
@rinogo: अच्छा सवाल। मुझे यह जांचना होगा कि क्या एकल 'लिखना() 'syscall दूसरे के साथ interleaved किया जा सकता है। ओटीओएच, मैं लॉगर को लॉग इन करने के लिए एक पंक्ति लिखने के लिए एक से अधिक 'लिखने() 'का उपयोग करने की अपेक्षा नहीं करता। – vartec
यह सच है! हालांकि, ध्यान में रखना कुछ है कि MySQL के धीमे क्वेरी लॉग के मामले में, प्रत्येक "प्रविष्टि" वास्तव में कई पंक्तियां होती है। तो, सबसे खराब स्थिति परिदृश्य, प्रत्येक "एंट्री" में वास्तव में कई लेखन() कॉल हो सकते हैं, जो एक परिदृश्य पेश करेंगे जो इस मुद्दे के लिए अधिक संवेदनशील है। – rinogo