डैन बर्नस्टीन का मल्टीलॉग जाहिरा तौर पर ऐसा कर सकता है - या शायद इसमें से अधिकांश, फाइल डिस्क्रिप्टर के माध्यम से एक आउटलेट प्रदान करते हैं ! प्रोसेसर को आप जैसे चाहें अंतर बना सकते हैं - हालाँकि 20M / 1G आकार के विनिर्देशों में कुछ फ़िनालेग्लिंग हो सकती है क्योंकि यह 16M है! प्रति लॉग आउट सीमा। इस प्रकार, बहुमत में, ऊपर दिए गए लिंक से एक कॉपी + पेस्ट चयन, हालांकि लिंक अन्य विकल्पों जैसे कि प्रति पंक्ति टाइमस्टैम्पिंग का भी विवरण देता है, [एक] अन्य फ़ाइल को बनाए रखता है [s] जिसमें केवल सबसे हालिया लाइन मिलान पैटर्न और बहुत कुछ है ।
इंटरफेस
multilog script
... स्क्रिप्ट में किसी भी तर्क की संख्या होती है। प्रत्येक तर्क एक क्रिया निर्दिष्ट करता है। इनपुट की प्रत्येक पंक्ति के लिए कार्रवाई की जाती है।
लाइनों का चयन
प्रत्येक पंक्ति को शुरू में चुना गया है। कार्य...
-pattern
... यदि रेखा रेखा से मेल खाती है, तो लाइन को अचयनित करता है। कार्य...
+pattern
यदि लाइन का चयन करता है पैटर्न लाइन मेल खाता है।
... पैटर्न सितारों और गैर-सितारों की एक स्ट्रिंग है। यह एक ही क्रम में सभी तारों और गैर-सितारों द्वारा मिलान किए गए तारों के किसी भी संयोजन से मेल खाता है। एक गैर-स्टार खुद से मेल खाता है। पैटर्न के अंत से पहले एक स्टार किसी भी स्ट्रिंग से मेल खाता है जिसमें पैटर्न में अगला चरित्र शामिल नहीं है। पैटर्न के अंत में एक स्टार किसी भी स्ट्रिंग से मेल खाता है।
स्वचालित रूप से घुमाए गए लॉग
अगर dir एक डॉट या स्लैश से शुरू होता है तो कार्रवाई ...
dir
... एक लॉग नामित करने के लिए प्रत्येक चयनित रेखा भी संलग्न dir । अगर dir मौजूद नहीं है, तो multilogइसे बनाता है।
लॉग प्रारूप इस प्रकार है:
dir एक निर्देशिका है जिसमें कुछ संख्या में पुरानी लॉग फाइलें, करंट नाम की एक लॉग फाइल , और अन्य फाइलों के लिए multilogअपने कार्यों पर नज़र रखने के लिए है।
प्रत्येक पुरानी लॉग फ़ाइल का नाम @ से शुरू होता है , एक सटीक टाइमस्टैम्प के साथ जारी रहता है जब फ़ाइल समाप्त हो गई थी, और निम्नलिखित में से एक कोड के साथ समाप्त हो रही है:
- .s : यह फ़ाइल पूरी तरह से संसाधित है और सुरक्षित रूप से डिस्क पर लिखी गई है।
- .u : यह फ़ाइल एक आउटेज के क्षण में बनाई जा रही थी। हो सकता है कि इसे काट दिया गया हो। इसे संसाधित नहीं किया गया है।
कार्य...
ssize
... बाद की dir क्रियाओं के लिए अधिकतम फ़ाइल आकार सेट करता है । multilogतय करेगा कि करंट काफी बड़ा है अगर करंट का आकार बाइट्स है। ( multilogयह भी तय करेगा कि वर्तमान काफी बड़ा है यदि यह अधिकतम फ़ाइल आकार के 2000 बाइट्स के भीतर एक नई पंक्ति देखता है; यह लाइन सीमाओं पर लॉग फ़ाइलों को समाप्त करने की कोशिश करता है।) आकार 4096 और 16777215 के बीच होना चाहिए। डिफ़ॉल्ट अधिकतम फ़ाइल आकार 99999 है।
0.75 और इसके बाद के संस्करण में: यदि multilogकोई ALRM सिग्नल प्राप्त करता है , तो यह तुरंत यह तय करता है कि करंट काफी बड़ा है, अगर करंट नॉनमेकट है।
(नोट: मुझे संदेह है कि यदि आवश्यक हो तो बिलिन को निर्दिष्ट अंतराल पर zsh scheduleभेजने के लिए आसानी से राजी किया जा सकता ALRMहै।)
कार्य...
nnum
... बाद की dir क्रियाओं के लिए लॉग फ़ाइलों की संख्या निर्धारित करता है । नाम बदलने के बाद वर्तमान , अगर multilogदेखता संख्या या एक से अधिक वर्ष लॉग फाइल, यह छोटी से छोटी टाइमस्टैम्प के साथ वर्ष लॉग फ़ाइल को हटा। संख्या कम से कम 2 होनी चाहिए। लॉग फ़ाइलों की डिफ़ॉल्ट संख्या 10 है।
कार्य...
!processor
... बाद की dir क्रियाओं के लिए एक प्रोसेसर सेट करता है । प्रोसेसर के माध्यम से करंटmultilog को फीड करेगा और आउटपुट को करंट के बजाय पुरानी लॉग फाइल के रूप में सेव करेगा । किसी भी आउटपुट को सेव करेगा जो प्रोसेसर डिस्क्रिप्टर 5 को लिखता है, और उस आउटपुट को डिस्क्रिप्टर 4 पर पढ़ने योग्य बनाता है जब वह अगली लॉग फ़ाइल पर प्रोसेसर चलाता है। विश्वसनीयता के लिए, प्रोसेसर को नॉनज़ेरो से बाहर निकलना चाहिए , अगर इसके उत्पादन को बनाने में कोई परेशानी हो; फिर इसे फिर से चलाएंगे। ध्यान दें कि रनिंग प्रोसेसर किसी भी प्रोग्राम फीडिंग इनपुट को ब्लॉक कर सकता है ।multilogmultilogmultilog