"स्क्रॉल" लॉग फ़ाइल प्रदर्शित करना


28

वाया कमांड लाइन, मेरे पास एक लॉग फ़ाइल है जिस पर मैं नज़र रखना चाहूंगा।

मैं जो चाहता हूं, मूल रूप से, tailवह एक ताज़ा हो जाता है जब लॉग को अपडेट किया जाता है, जिससे टेक्स्ट को ऊपर की ओर स्क्रॉल किया जाता है क्योंकि लॉग फ़ाइल में नई लाइनें जोड़ दी जाती हैं।

वहाँ कुछ भी है कि कुछ कोड लिखने के लिए बिना ऐसा करता है?

जवाबों:


35

tailहै -fविकल्प:

से manपेज:

-f, --follow [= {name | descriptionptor}] फ़ाइल के रूप में आउटपुट जोड़ा गया डेटा बढ़ता है; -f, --follow, और --follow = डिस्क्रिप्टर समतुल्य हैं

इस प्रकार यदि आप टाइप करते हैं:

tail -f [path_and_name_of_logfile] - आपको टर्मिनल में आउटपुट दिखाई देगा क्योंकि लॉग फाइल अपने आप में संलग्न है।

एनबी [path_and_name_of_logfile]पैरामीटर है, इसलिए एक उदाहरण देना है:

tail -f /var/log/messages

यदि आप -n [number_of_lines]विकल्प के साथ संयोजन करते हैं, तो आप फ़ाइल में अंतिम [number_of_lines] से आउटपुट शुरू कर सकते हैं - उदाहरण के लिए

tail -n 10 -f /var/log/Xorg.0.log

यहाँ छवि विवरण दर्ज करें


कुछ कार्यक्रम समय-समय पर अपनी लॉग फ़ाइल को बदल देंगे, पुराने को एक नए नाम (जैसे log.0) पर ले जाकर शुरू करेंगे।

NB logrotate अन्य प्रोग्राम्स के लिए फ़ाइलों को लॉग करने के लिए ऐसा करता है जो इसे स्वयं नहीं करते हैं।

tail -f नाम बदलने के बाद पुरानी फ़ाइल का पालन करना जारी रखेगा।

tail -F नाम से फ़ाइल का पालन करेंगे, इसलिए नई फ़ाइल का पालन करने के लिए स्विच करेंगे।


दोनों उत्तर हाजिर हैं ... एहसास नहीं था कि पूंछ में वह विकल्प था। आपको अतिरिक्त जानकारी के लिए चेक मिलता है।
वर्नरसीडी

एक तरफ के रूप में, वहाँ भी कुछ भयानक लिपियों अपने पूंछ लॉग को colorize करने के लिए। एक उदाहरण जो दिमाग में आता है वह है colorize.pl, और आप इसे colorize स्क्रिप्ट के माध्यम से पाइप करके प्राप्त करते हैं। उदाहरण: पूंछ -f / var / लॉग / संदेश | /home/me/colorize.pl
lazyPower

@lazyPower अच्छा लगा। मैं उस के साथ छेड़छाड़ करनी होगी, हालांकि मुझे नहीं लगता कि यह मेरी वर्तमान स्थिति में सुपर उपयोगी होगा।
वर्नरसीडी

18

हालांकि tailनिश्चित रूप से ऐसा करने का सामान्य तरीका है, यह ध्यान दिया जाना चाहिए कि lessएक ही विशेषता है और कभी-कभी अधिक उपयोगी है।

यदि आपने एक फ़ाइल खोली है, lessतो आप उस फ़ाइल का अनुसरण करने के लिए Shift+ दबा सकते हैं F(जैसे वह नई पंक्तियाँ प्रदर्शित करेगा, ठीक उसी तरह tail -f)। आप इस मोड से Ctrl+ से बाहर निकल सकते हैंC

आप विकल्प के lessसाथ भी शुरू कर सकते हैं +F, जिस स्थिति में यह उस मोड में शुरू होगा । आम तौर पर बोलने +का उपयोग "कीबोर्ड-कमांड" देने के लिए किया जा सकता है, lessजिस पर वह स्टार्टअप पर अमल करेगा।

इसका उपयोग lessकरने से यह फायदा होता है कि जरूरत पड़ने पर आप आसानी से फाइल खोज सकते हैं या अन्य क्षेत्रों को देख सकते हैं। मैंने अक्सर लॉग फ़ाइलों के साथ ऐसा किया है, उदाहरण के लिए।


"अनुसरण" (अधिक, कम, पूंछ, बिल्ली) के बारे में कभी नहीं सुना। सामान जानना अच्छा है।
वर्नरसीडी

1
माना। मैं बहुत कम पसंद करता हूं। Ctrl-C स्क्रॉलिंग को रोक देगा जब आप कुछ दिलचस्प स्पॉट करेंगे, तो आगे स्क्रॉल करने के लिए b या f आगे और / या? आगे या पीछे खोजने के लिए। g आपको फ़ाइल के आरंभ में और G को अंत तक ले जाएगा। आपको जो भी चाहिए।
मार्टिन डॉव


4

tail डेटा को फॉलो करने और आउटपुट करने के लिए दो कार्यान्वयन हैं जो एक फ़ाइल में जुड़ जाते हैं

  • फ़ाइल डिस्क्रिप्टर का पालन करें
  • एक निश्चित नाम के साथ एक फ़ाइल का पालन करें

पैरामीटर के साथ -f, --followऔर --follow=descriptor, tailफ़ाइल डिस्क्रिप्टर का अनुसरण करता है। यह विधि फ़ाइल का नाम बदलने के बाद अनुसरण करने की अनुमति देती है लेकिन फ़ाइल घुमाए जाने पर ट्रैकिंग बंद हो जाती है (एक नई फ़ाइल एक अलग फ़ाइल विवरणक के साथ बनाई जाती है)।

उन फ़ाइलों का अनुसरण करते समय जिन्हें घुमाया जाता है, या तो उपयोग --follow=nameया -Fपैरामीटर जो बराबर होता है --follow=name --retry। इस तरह tailसे समय-समय पर संभावित रोटेशन को दूर करने के लिए फ़ाइल को फिर से खोलना होगा।


1

मुझे लगता है कि ccze आपके लिए सही उपकरण है।

यह रंगाई का काम करता है। आप लॉग स्क्रॉलिंग को नीचे देख सकते हैं, लेकिन यह पढ़ना आसान है, क्योंकि लाइनें रंगों के साथ मुद्रित होती हैं (लाल रंग में त्रुटियां, और इसी तरह)। आप जल्दी से इसे कुछ इस तरह से आज़मा सकते हैं:

tail -f /var/log/syslog | ccze
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.