आप अपनी स्क्रिप्ट में क्या कर सकते हैं लॉग लॉग के तर्क को लागू करें। एक फ़ंक्शन के माध्यम से सभी लॉगिंग करें:
log()
{
...
}
यह कार्य, सबसे पहले, कुछ इस तरह करता है:
printf "%s\n" "$*" >> logfile
फिर, यह फ़ाइल के आकार की जाँच करता है या किसी तरह यह तय करता है कि फ़ाइल को रोटेशन की आवश्यकता है। उस बिंदु पर, फ़ाइल logfile.1
, यदि वह मौजूद है, तो उसे हटा दिया जाता है, फ़ाइल logfile.0
, यदि वह मौजूद है, तो उसका नाम बदल दिया जाता है logfile.1
और logfile
उसका नाम बदल दिया जाता है logfile.0
।
यह तय करना कि क्या घूमना स्क्रिप्ट में बनाए गए काउंटर पर आधारित हो सकता है। जब यह 1000 हिट करता है, तो यह शून्य पर रीसेट हो जाता है।
यदि हमेशा कड़ाई से 1000 लाइनों को ट्रिम करना एक आवश्यकता है, तो स्क्रिप्ट लॉग फ़ाइल में लाइनों की संख्या की गणना कर सकती है जब यह शुरू होता है, और तदनुसार काउंटर शुरू करता है (या यदि गिनती पहले से मिलती है या 1000 से अधिक है, तो तुरंत रोटेशन करें)।
या आप आकार प्राप्त कर सकते हैं, जैसे कि wc -c logfile
एक निश्चित आकार से अधिक के आधार पर रोटेशन के साथ । इस तरह से स्थिति को निर्धारित करने के लिए फ़ाइल को कभी स्कैन नहीं करना पड़ता है।
logrotate
सुरुचिपूर्ण समाधान है