मैं इनकोड संख्या के बजाय फ़ाइल नाम कैसे कम करूं?


11

मेरे पास एक सॉफ्टवेयर है जो पुनरारंभ होने पर अपनी लॉग फ़ाइलों को घुमाता है। हालाँकि, विकास के दौरान, मैं इसे पुनः आरंभ कर रहा हूं, इसलिए मैं किसी भी समय नवीनतम लॉग फ़ाइल की निगरानी करना चाहूंगा।

यदि मैं lessसामान्य रूप से शुरू करता हूं less program.logऔर Shift+ fसे पूंछ तक हिट करता हूं , जब लॉग फ़ाइल घुमाई जाती है, तो मैं पुरानी लॉग फ़ाइल की निगरानी करता हूं। मुझे लगता है यह है क्योंकि इनोड संख्या एक ही रहती है और lessउस इनोड के लिए एक खुली फ़ाइल संभालती है।

क्या वर्तमान में लॉग फ़ाइल को जो भी कहा जाता है, उस पर नवीनतम गतिविधि की निगरानी करना संभव है program.log?

विशेष रूप से, मैं सन ओएस पर काम कर रहा हूं, इसलिए एक समाधान जो वहां काम करता है वह आदर्श होगा।


शायद tail -F program.log | lessकाम करेगा
sendmoreinfo

tail -f program.log क्या आपने यह कोशिश की है?
राहुल पाटिल

जवाबों:


17

इसका उपयोग करें less --follow-nameयदि आपका संस्करण lessइसका समर्थन करता है। वह विकल्प 416 संस्करण में पेश किया गया था।


बहुत बढ़िया जवाब। Solaris 10 और Solaris 11 दोनों ही कम संस्करण 436 का उपयोग करते हैं इसलिए यह विकल्प वास्तव में उपलब्ध है।
unixhacker2010

5

lessविकल्प --follow-nameसमाधान का ही हिस्सा है;
प्रतिस्थापित करने के लिए tail -F, एक और तर्क की आवश्यकता है:

less --follow-name +F file.log

अकेले विकल्प की तरह less --follow-name file.logवास्तव में फ़ाइल अपडेट के बाद शुरू नहीं होता है। आपको दबाए जाने वाले फॉलो मोड में प्रवेश करना होगा ShiftF
(द्वारा नेविगेट करने के लिए मोड से बाहर निकलें ControlC।)

फ़ाइल का अनुसरण करने के बजाय, कम --follow-name के व्यवहार को संशोधित करता है
यह फाइल के नाम के आधार पर फॉलो के ShiftFअंदर कमांड को बनाता है less, न कि फाइल डिस्क्रिप्टर को।

साथ ही, lessफॉलो मोड में शुरू करने के लिए कोई सामान्य विकल्प नहीं है।
लेकिन आप स्टार्टअप के बाद उन्हें निष्पादित करने के लिए कीस्ट्रोक्स देने के लिए कमांड लाइन का उपयोग कर सकते हैं +
संशोधक विकल्प के साथ संयोजन +F, lessवास्तव में (संशोधित) अनुसरण मोड में शुरू होगा।

+Fसादे के बराबर के लिए अकेले का उपयोग करें tail -f:

less +F file.log

1

मैं सिर्फ पाया इस यू एंड एल क्यू एंड ए में जवाब शीर्षक: कैसे एक करने के लिए tail -fलॉग का घुमाई गई फ़ाइलों?

का उपयोग कर tail:

(यदि आपके सिस्टम पर GNU टेल स्थापित करना एक विकल्प है)

tail -F program.log

से पूंछ आदमी पेज :

   -f,      --follow[={name|descriptor}]
            output appended data as the file grows; -f, 
            --follow, and --follow=descriptor are equivalent

   -F       same as --follow=name --retry

   --retry  keep  trying  to  open  a  file even when it is or becomes
            inaccessible; useful when following by name, i.e., with
            --follow=name

कुंजी --retryस्विच है। यह tailकमांड को एक फाइल को नाम से अनुसरण करने के लिए पुन: प्रयास करते रहने के लिए कहता है । -Fस्विच दोनों एक करता है -fऔर एक --retry

का उपयोग करते हुए less

जैसा कि @StephaneChazela ने टिप्पणी में बताया कि निम्नलिखित काम नहीं करेगा।

tail -F program.log | less

आपके पास एकमात्र दूसरा विकल्प यह है कि यह सीधे --follow-nameस्विच और lessफ़ाइल का समर्थन करता है , tailपूरी तरह से उपयोग करते हुए कम सीधे उपयोग करने के लिए है ।

less --follow-name program.log

मैं कभी-कभी सन ओएस को दृढ़ता से नापसंद करता हूं ...
एलेक्स चैंबरलेन

मैं मानता हूं, मैंने सालों तक काम किया, यह आपको पागल कर देता है कि कुछ एप्स के लिए टूलिंग 10 साल पुरानी है। कुछ समझ नहीं आया। : इस साइट में सोलारिस पर अपने विवेक रखने के लिए अमूल्य था sunfreeware.com/introduction.html
SLM

यदि आप और अधिक पवित्रता चाहते हैं, तो pkgsrc.org की जाँच करें :)
sendmoreinfo

यह अच्छी तरह से काम नहीं करेगा। क्योंकि lessअगर आप "G" pr "F" करते हैं तो हैंग हो जाएगा। जिसे आप "Ctrl-C" करके बाधित कर सकते हैं, लेकिन फिर यह पूंछ को मारता है। फिर आप Ctrl-C से प्रतिरक्षा कर सकते हैं, लेकिन यह अभी भी बहुत उपयोगी नहीं है।
स्टीफन चेजलस

बाहर की जाँच करें: जीएनयू पूंछ के संबंध में यह क्या उपकरण किसी भी सोलारिस मेजबान पर उपलब्ध होना चाहिए के बारे में जानकारी के लिए। (वास्तव में GNU पूंछ सोलारिस 11 में डिफ़ॉल्ट रूप से है)। Solaris sysadmins अक्सर अपने उपयोगकर्ताओं के लिए इसे कठिन बनाते हैं क्योंकि वे बहुत नंगे-हड्डी वाले इंस्टालेशन पर इंस्टॉल को छोड़ देते हैं जबकि Solaris के लिए GNU टूल वास्तव में इन दिनों सीधे Oracle से या कुछ मामलों में डिफ़ॉल्ट इंस्टॉल के भाग में उपलब्ध हैं। कोई कारण नहीं है कि यह आपके इंस्टॉल का हिस्सा बने। Icial अनऑफिशियल ’रिपोज में जाने का कोई कारण नहीं। लिंक देखें
unixhacker2010
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.