लॉग रोटेट की गई फ़ाइलों की `टेल-ऑफ़` कैसे करें?


106

लंबे समय से चल रहे सिस्टम पर मेरे पास आमतौर पर एक टर्मिनल होता है

$ tail -f /var/log/kern.log

या ऐसा कुछ खुला।

लेकिन समय-समय पर मुझे ऐसी कमांड को फिर से शुरू करना पड़ता है क्योंकि अब कोई नया संदेश प्रदर्शित नहीं होता है।

मुझे लगता है कि यह लॉग रोटेटिंग जॉब की वजह से है, जो लॉग फाइल की जगह ले चुका है, tail -fवह है 'देखना'।

मैं इस पुनः आरंभ करने वाले मुद्दों से कैसे बच सकता हूं?

क्या मैं tailइस तरह का आह्वान कर सकता हूं कि यह घूमने की प्रक्रिया को नोटिस करे और सही काम करे?

(मैं इस मुद्दे को Ubuntu 11.04 सिस्टम पर देखता हूं rsyslogdजो डिफ़ॉल्ट रूप से उपयोग करता है।)


जवाबों:


162

-Fइसके बजाय विकल्प का उपयोग करें :

tail -F /var/log/kern.log

-Fविकल्प बताता है tailबजाय जो रोटेशन के दौरान बदलता है आइनोड संख्या का उपयोग कर के, फ़ाइल नाम से फ़ाइल में परिवर्तन ट्रैक करने के लिए। यह मौजूद न होने पर फ़ाइल को खोलने की कोशिश भी करता रहेगा।


7
बहुत बढ़िया, हाँ, मैं हूँ। (सिर्फ रिकॉर्ड के लिए, यह एक जीएनयू पूंछ विकल्प है - जहां जीएनयू पूंछ निश्चित रूप से उबंटू पर डिफ़ॉल्ट है)।
मैक्सचेलपिजिग

आप सही हैं: - / मैंने यह नहीं देखा कि आपके प्रश्न में उबंटू केवल एक उदाहरण था।
andcoz

कोई समस्या नहीं है - मैंने सिर्फ पूर्णता के लिए टिप्पणी की (कभी-कभी मैं सिर्फ यह देखना चाहता हूं कि POSIX क्या है और क्या नहीं)। प्रश्न वास्तव में उबंटू के बारे में बहुत अधिक था।
मैक्सक्लेपजिग

1
के tail -F /var/log/kern.logबराबर है tail -f --follow=name --retry /var/log/kern.log?
बास

1
@Basj - अनुसार करने के लिए man7.org/linux/man-pages/man1/tail.1.html यह बराबर है
andrej
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.