बढ़ती लॉग फ़ाइल में केवल नई प्रविष्टियाँ देखें


20
tail -f x.log

मैं कमांड प्रॉम्प्ट में बढ़ती लॉग फ़ाइल देखने के लिए इस कमांड का उपयोग करता हूं।

मुझे केवल उन लॉग लाइनों को देखने में दिलचस्पी है जो चलने के बाद फ़ाइल में लिखी जाती हैं tail -fऔर उन लॉग में दिलचस्पी नहीं है जो करने से पहले फ़ाइल में लिखे गए थे tail -f। लेकिन tail -fस्टार्ट पर कमांड, अंतिम 10 लाइनें लेता है और इसे प्रदर्शित करता है।

यह मुझे भ्रमित करता है, कई बार अगर ये लॉग नए सिरे से उत्पन्न होते हैं (या) ये पुराने लॉग होते हैं?

तो, मैं केवल नई प्रविष्टियों को आउटपुट करने के लिए टेल-एफ को कैसे अनुकूलित कर सकता हूं?

logs  tail 

जवाबों:


31

तुम कोशिश कर सकते हो:

tail -n0 -f x.log

से आदमी पेज :

-n, --lines = K
अंतिम K लाइनों की बजाय अंतिम 10 का उत्पादन करता है; या kn के साथ शुरू होने वाली आउटपुट लाइनों के लिए -n + K का उपयोग करें


12

आप -n00 लाइनों को दिखाने के लिए विकल्प का उपयोग कर सकते हैं । इसलिए

tail -n0 -f some.log

2

आप lessकमांड का भी उपयोग कर सकते हैं

  1. less file_name.log (लॉग फ़ाइल खोली जाएगी और लॉग फ़ाइल का पहला पृष्ठ दिखाई देगा)
  2. प्रेस shift+ f(पूंछ की तरह ही कार्य करने के लिए)
  3. अगर आपको लॉग फाइल में किसी कीवर्ड की खोज करनी है तो। प्रेस ctrl+ cपूंछ मोड से बाहर निकलने और के रूप में कीवर्ड के लिए खोज करने के लिए /कीवर्ड और ?कीवर्ड।

यह बढ़ती लॉग फ़ाइल में केवल नई प्रविष्टियाँ नहीं देखता है ।
डरावना

0

मैंने यह तरीका तब बनाया है जब मुझे डॉकटर कंटेनर के अंदर प्रविष्टियों की निगरानी करनी थी:

LOG_COUNT=0
LOGS=/var/logs/your_logs

function HEART_BEAT() {
    LOG_COUNT_NEW=$(wc -l $LOGS | awk '{ print $1 }')
    tail -n $(( $LOG_COUNT_NEW - $LOG_COUNT )) $LOGS
    LOG_COUNT=$LOG_COUNT_NEW
}

उम्मीद है की यह मदद करेगा!

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