Systemctl सर्विस लॉग से नवीनतम x लाइनें कैसे देखें


21

मैं एक रास्ता खोज रहा हूँ, बस डेबियन में एक सिस्टेक्टल सेवा से अंतिम एक्स लाइनों को प्रिंट करने के लिए। मैं इस कोड को एक स्क्रिप्ट में स्थापित करना चाहूंगा, जो मुद्रित और नवीनतम लॉग प्रविष्टियों का उपयोग करता है। मुझे यह पद मिल गया है, लेकिन मैं इसे अपने उद्देश्यों के लिए संशोधित करने में सक्षम नहीं था।

वर्तमान में मैं इस कोड का उपयोग कर रहा हूं, जो मुझे लॉग फाइल का एक छोटा सा स्निपेट दे रहा है:

journalctl --unit=my.service --since "1 hour ago" -p err

परिणाम कैसा दिखना चाहिए, इसका उदाहरण देने के लिए, बस किसी भी सेवा के लिए ऊपर दिए गए कमांड में टाइप करें और लॉग के अंत तक स्क्रॉल करें। फिर नीचे से शुरू होने वाली अंतिम 300 लाइनों को कॉपी करें।

मेरा विचार egrep ex का उपयोग करना है। egrep -m 700 .लेकिन अब से मेरा कोई भाग्य नहीं था।

जवाबों:



7

बस उत्पादन के लिए पाइप tail:

journalctl --unit=my.service | tail -n 300

tailआदेश पिछले लाइनों (10 डिफ़ॉल्ट रूप से) के लिए stdout stdin में प्राप्त प्रिंट करता है।


1
पूरी तरह से पूंछ के बारे में भूल गया - महान विचार, बहुत बहुत धन्यवाद!
user3191334

5
पूंछ बड़े लॉग के लिए दर्दनाक रूप से धीमी हो सकती है। बिल्ट-इन -njournalctrl आप क्या चाहते हैं। जैसेjournalctl -n 300
Drakes

4

यदि आप अंतिम n संख्याओं को देखना चाहते हैं और नए संदेश देखना चाहते हैं जैसे वे लॉग में मुद्रित होते हैं, तो यह प्रयास करें:

journalctl -u <service name> -n <number of lines> -f

जहां -nआप लॉग की पूंछ से उन पंक्तियों की संख्या को इंगित करना चाहते हैं, और यह -fनिर्दिष्ट करता है कि आप लॉग का पालन करना चाहते हैं क्योंकि यह बदलता है।


4

बस:

journalctl -u SERVICE_NAME -e

पैरामीटर -eके लिए खड़ा है:

-ए - पेजरेंड; निहित पेजर टूल के अंदर पत्रिका के अंत में तुरंत कूदें। इसका तात्पर्य यह है कि 1000 यह गारंटी देता है कि पेजर अनबाउंड आकार के लॉग को बफर नहीं करेगा। इसे कुछ अन्य संख्यात्मक मानों के साथ स्पष्ट -n के साथ ओवरराइड किया जा सकता है, जबकि -nall इस कैप को अक्षम कर देगा।


1

चूंकि टेल कमांड सॉल्यूशन अलेडी प्रदान किया गया था। मैंने सीम कमंड और इसके ठीक काम का उपयोग करके प्रयास किया

नीचे कमांड पिछले 300 लाइनों को प्रदर्शित करेगा

journalctl --unit=my.service | sed -e :a -e '$q;N;301,$D;ba' 
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.