लॉग फ़ाइल की केवल अंतिम n लाइनों की निगरानी कैसे करें?


110

मेरे पास एक बढ़ती लॉग फ़ाइल है जिसके लिए मैं केवल अंतिम 15 लाइनों को प्रदर्शित करना चाहता हूं । यहाँ मैं जानता हूँ कि मैं क्या कर सकता हूँ:

tail -n 15 -F mylogfile.txt

जैसे ही लॉग फ़ाइल भर जाती है, tailअंतिम लाइनों को डिस्प्ले में जोड़ देता है।

मैं एक ऐसे समाधान की तलाश में हूं जो केवल अंतिम 15 लाइनों को प्रदर्शित करता है और अपडेट होने के बाद अंतिम 15 से पहले लाइनों से छुटकारा पाता है। क्या आपको अंदाजा होगा?


28
15 लाइनों के लिए अपने टर्मिनल विंडो का आकार बदलें।
जोनाथन

1
वह भी अच्छा है।
मार्क-ओलिवियर टिटेक्स

3
@ जोनाथन प्रतिभा!
मार्सेलस वालेस

जोनाथन की टिप्पणी को आगे नहीं बढ़ा सके या यह 15
अपवोट

जवाबों:


151

यह घड़ी का उपयोग करने के लिए पर्याप्त हो सकता है:

$ घड़ी पूँछ -n 15 mylogfile.txt

1
महान! बहुत बहुत धन्यवाद। मैं इस प्रक्रिया में 'वॉच' कमांड भी सीखता हूं।
मार्क-ओलिवियर टाइटक्स

1
ध्यान रखें कि यदि फ़ाइल दो watchअद्यतनों के बीच 15 से अधिक लाइनों में बढ़ती है तो यह समाधान काम नहीं करता है । आप -nइस अंतराल को बदलने के लिए उपयोग कर सकते हैं ।
bfontaine

25

यदि आप घड़ी का उपयोग करते हैं, तो -nप्रत्येक अपडेट के बीच अंतराल को नियंत्रित करने के लिए विकल्प का प्रयास करें।

इस प्रकार, निम्नलिखित हर 2 सेकंड में पूंछ करेगा

$ watch -n 2 tail -n 15 mylogfile.txt

जबकि यह हर 1 सेकंड में एक सर्वेक्षण करता है

$ watch -n 1 tail -n 15 mylogfile.txt

13

आप लॉगफ़ाइल को कम चलाने और SHIFT + F को दबाकर स्ट्रीम कर सकते हैं जो कम उपयोग करके फ़ाइल को स्ट्रीम करेगा। $ less mylogfile.txt फिर बस SHIFT + F दबाएं और यह स्ट्रीम हो जाएगा। मुझे लगता है कि अद्यतन करने वाली लॉग फ़ाइलों की निगरानी करना सुविधाजनक है।


1
यह एक बहुत अच्छा है!
कैसर

8

हो सकता है कि आपको -dपरम उपयोगी लगे।

man watch

-एक क्रमिक अद्यतन के बीच अंतर पर प्रकाश डाला। विकल्प वैकल्पिक तर्क को पढ़ेगा जो परिवर्तन को स्थायी बनाता है, यह देखने की अनुमति देता है कि पहली पुनरावृत्ति के बाद कम से कम एक बार क्या बदल गया है।


1
अच्छी पकड़ भी!
मार्क-ओलिवियर टिटेक्स

0

सोलारिस, AIX या HPUX या UNIX- जैसे (लिनक्स सहित) में आप लॉग्स की निगरानी के लिए स्क्रिप्ट का उपयोग कर सकते हैं या ऐसा कुछ भी:

while true; 
    clear; 
    do date; 
    echo ;
    echo "MONITORING LOG IN "/path/to/file.log": "; 
    echo "Obs.: Last 20 lines of a logfile:
    echo ;
    tail -20 /path/to/file.log;
    echo ;
sleep 5; 
done
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.