कैसे करें क्लियर जर्नल


208

मैं सिस्टम जर्नल को साफ करने के लिए किसी भी सुरक्षित तरीके से Google में नहीं मिल सका। क्या कोई ऐसा करने का कोई सुरक्षित और विश्वसनीय तरीका जानता है?

मान लीजिए कि मैं कुछ प्रयोग कर रहा था और मेरे लॉग विभिन्न त्रुटि संदेशों के साथ बंद हो गए। इसके अलावा मैं Conky का उपयोग करके अपने डेस्कटॉप पर अपनी पत्रिका प्रदर्शित कर रहा हूं। मैं वास्तव में उन त्रुटियों को नहीं देखना चाहता क्योंकि वे मुझे एक भयानक दिन याद दिलाते हैं कि मैं इस सामान को ठीक कर रहा था, मैं इस डरावने व्यक्ति के बाद एक ताजा आदमी की तरह महसूस करना चाहता हूं। मुझे लगता है कि हर कोई इस बात से सहमत होगा कि यह लॉग्स को साफ़ करने का एक वैध कारण है: पी।

जवाबों:


289

स्व रखरखाव विधि आकार या समय से लॉग को वैक्यूम करना है।

केवल पिछले दो दिनों को फिर से रखें:

journalctl --vacuum-time=2d

केवल पिछले 500 एमबी को बनाए रखें:

journalctl --vacuum-size=500M

man journalctl अधिक जानकारी के लिए।


11
अच्छा आदेश, लेकिन मेरे लिए काम नहीं किया खुले पर 13.2 (वर्तमान स्थिर रिलीज)। यह ज्ञात है कि आर्क आमतौर पर कटिंग एज पर होता है जब कर्नेल और यूजरलैंड प्रोग्राम्स की बात आती है, तो मैंने अनुमान लगाया कि हाल ही में वैक्यूम विकल्पों को सिस्टमड में जोड़ा जा सकता है और बस मेरे डिस्ट्रो में नीचे नहीं गया है। 10 दिसंबर 2014 को टेनेपडेट्स.com/go/1002774 पर लेनार्ट की घोषणा में यहां इस तथ्य की पुष्टि की गई कि इस कमांड को systemd v218 में जोड़ा गया था। इस टिप्पणी को जोड़ने से मेरे जैसा कोई और भी हो सकता है जो आर्क पर नहीं है, एक समान मुद्दा है। वैसे भी अपवित्र।
यहोशू हबेर

मैंने अभी एक स्थिति को ठीक करने के लिए 'journalctl --vacuum-time = 1d' का उपयोग किया जहां नए लॉग संदेश 'journalctl -f' के साथ नहीं दिख रहे थे। जाहिरा तौर पर मेरे सिस्टम का समय अस्थायी रूप से एक दिन के बारे में कुछ समय के लिए आगे बढ़ गया था, फिर ठीक हो गया, और जर्नलैक्ट उस भविष्य के समय के लॉग इवेंट टाइमस्टैम्प का उपयोग जर्नल टेल के रूप में कर रहा था।
user5071535

8
Ubuntu 16.04 पर "systemd 229" संस्करण में काम नहीं किया। journalctl --vacuum-size=1Kफिर journalctlभी 1K से अधिक रास्ता दिखाता है। यह अंतिम बूट के बाद से सभी संदेशों को दिखाता है।
बजे डैन डस्केल्सस्कू

18
ऐसा लगता है कि यह केवल संग्रहीत लॉग को साफ़ करता है, सक्रिय नहीं। मैंने journalctl --flush --rotateपहले दौड़ने की कोशिश की journalctl --vacuum-time=1sऔर इसने अधिक सामान हटा दिया, हालांकि अभी भी सब कुछ नहीं है।
user60039

2
प्रलेखन मुझे इतना स्पष्ट नहीं लगता है। क्या यह हमेशा 2d (आपके उदाहरण में) पर सेट रहता है? या आप कमांड चलाने के समय से 2d हैं? शायद मैं समझ नहीं पा रहा हूं कि यह कैसे काम करता है।
जर्सी बीन

84

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

आप इसे इस /etc/systemd/journald.confतरह सेट कर सकते हैं :

SystemMaxUse=100M

11
ठीक है, लेकिन वहाँ भी विषम परिस्थितियाँ हैं। मुझे पता है कि उनमें से ज्यादातर सिर्फ एक कारण के रूप में सौंदर्यशास्त्र हैं, लेकिन सौंदर्यशास्त्र मनुष्य के लिए एक वैध कारण है;)।
12कसज़ ज़रोदा

2
@ YouukaszZaroda उस स्थिति में आपको "सुरक्षित" परिभाषित करना होगा। आम तौर पर "मैं कुछ उड़ाना चाहता हूं जिसे रखने के लिए एक डेमॉन कॉन्फ़िगर किया गया है" "सुरक्षित" के साथ असंगत है। यदि आप इसे लागू करना चाहते हैं तो बस सेवा बंद कर दें और लॉग फाइल को शून्य कर दें। यदि आप चाहते हैं कि यह सामान्य रूप से काम करे तो आपको अपने प्रश्न में मापदंडों को बेहतर ढंग से परिभाषित करना चाहिए। "सुरक्षित" से आपका क्या तात्पर्य है?
कालेब

सुरक्षित रूप से, मेरा मतलब है कि साफ़ करने के बाद यह हमेशा की तरह काम करेगा, बस नई जगह से शुरू होगा।
12:कसज़ ज़रोदा

5
यह विशिष्ट स्थिति नहीं हो सकती है, लेकिन कभी-कभी कुछ सिस्टम
diffycun

1
जब वे एक निश्चित आकार तक पहुंचते हैं, तो समय की अवधि के बाद लॉग को साफ करने के लिए, आप MaxRetentionSecइसके बजाय पैरामीटर सेट कर सकते हैं SystemMaxUseman journald.confअधिक जानकारी के लिए देखें।
joelostblom

52

माइकल का जवाब एक बात याद आ रहा है: वैक्यूम करना केवल संग्रहीत फ़ाइलों को हटाता है, सक्रिय नहीं। सब कुछ से छुटकारा पाने के लिए, आपको पहले फ़ाइलों को घुमाने की ज़रूरत है ताकि हाल की प्रविष्टियाँ निष्क्रिय फ़ाइलों में स्थानांतरित हो जाएं।

तो, सभी प्रविष्टियों को हटाने का पूरा उत्तर लगता है

journalctl --rotate
journalctl --vacuum-time=1s

(ध्यान दें कि आप इसे एक journalctlकमांड में जोड़ नहीं सकते ।)

वैसे, कुछ डिस्ट्रीब्यूशन में जर्नल को कॉन्फ़िगर किया गया है ताकि यह डिस्क ( /var/log/journal) में लॉग्स लिखता है जबकि अन्य लोग मेमोरी में लॉग ( /run/log/journal) रखते हैं। मुझे उम्मीद है कि कुछ मामलों में journalctl --flushसब कुछ निकालने के लिए पहले उपयोग करना आवश्यक हो सकता है।

यदि आपके पास --rotateअपने संस्करण में नहीं है , तो आप --sinceप्रविष्टियों को फ़िल्टर करने के लिए तर्क का उपयोग कर सकते हैं :

--since "2019-01-30 14:00:00"
--since today

journalctl: गैर-मान्यताप्राप्त विकल्प '--rotate'
stiv

1
जब मैं प्राप्त करता हूं कि अन्य उत्तर क्या आ रहे हैं (दीर्घकालिक रणनीति) - सवाल सरल है: आप अब कैसे स्पष्ट लॉग करते हैं (हो सकता है कि आप अपने वर्तमान कार्य के लिए दीर्घकालिक में रुचि नहीं रखते हैं)। यह उस सवाल का जवाब देता है जो अन्य धारणाओं के बिना बनता है और अन्य महत्वपूर्ण मूल्यों को जोड़ता है। इसका उत्तर होना चाहिए।
मार्क

1
मेरे लिए यह एकमात्र सहायक उत्तर था। धन्यवाद!
फ्रीडो सेप

18

आर्क लाइनक्स पर, मुझे जो निकटतम मिला वह था:

  • SystemMaxUse = 1M सेट करने के लिए /etc/systemd/journald.conf संपादित करें
  • पुनः आरंभ करने वाली पत्रिका: sudo systemctl restart systemd-journald
  • सिस्टममैक्सयूसेट रीसेट करना = 200M
  • पत्रिका को फिर से शुरू करना

मेरे सिस्टम पर, प्रत्येक जर्नल फ़ाइल 8MB है, और ऊपर सभी को साफ कर दिया है लेकिन 3, कुल आकार ~ 25MB तक लाता है।

मेरा उपयोग-मामला BTRFS के लिए CoW को अक्षम कर रहा था (केवल पत्रिका निर्देशिका और उपनिर्देशिका के लिए) sudo chattr +C /var/log/journal/*:। समस्या यह है कि, विशेषता केवल नई बनाई गई फ़ाइलों पर सेट है, इस प्रकार पत्रिका को फ्लश करने की इच्छा है।


4
आपके उपयोग-मामले की वास्तव में आवश्यकता नहीं थी। जर्नल पर CoW को अक्षम करने का मुद्दा यह है कि यह अक्सर लिखा जाता है। पुरानी घुमाए गए जर्नल फ़ाइलों के लिए ऐसा नहीं है, वे बस वहां बैठते हैं।
हेजल

1
मैंने सेट किया है SystemMaxUse=1K, फिर से शुरू किया है systemd-journald, लेकिन अभी भी जिएक्टल उन प्रविष्टियों को दिखाता है जो मैं चाहता हूं। फ्लैट टेक्स्ट फ़ाइलों से यह प्रगति कैसे होती है?
दान डैस्कलेस्कु

13

चूंकि मेरे लिए कोई काम नहीं किया --vacuum-timeऔर --vacuum-sizeमैंने निम्नलिखित कार्य किया:

$ sudo find /var/log/journal -name "*.journal" | xargs sudo rm 
$ sudo systemctl restart systemd-journald

यह सही नहीं है, लेकिन यह काम किया है।


डेबियन जेसी पर, पथ है /run/log
सिन्क्रो

1
केवल इसने मेरी मदद की!
टोडुआ

यह वर्तमान में सही उत्तर है। यह अच्छा होगा अगर जर्नलैक्ट कमांड ऐसा कर सकता है लेकिन यह असमर्थ दिखाई देता है।
केविन लिडा

11

संपूर्ण लॉग को साफ करने के लिए एक बहुत ही क्रूर बल विधि:

$ sudo journalctl --vacuum-time=1seconds

आप --vacuum-sizeमाइकल मेंटनेंस के रूप में भी उपयोग कर सकते हैं ।


5
काम नहीं किया। 15 मिनट पहले की प्रविष्टियाँ अभी भी चलती हैं, दौड़ने के बाद भी systemctl restart systemd-journald
दान डैस्कलेस्क्यू

1
मुझे भी। यह मेरे लिए भी काम नहीं किया। मैं CentOS7 चला रहा हूं।
जर्सी बीन

5

दोनों --rotate और --vacuum-time = 1s ने मेरे लिए CentOS पर काम नहीं किया। मैं इसे इस तरह से साफ़ करने में सक्षम था:

sudo rm -rf /run/log/journal/*

मुझे हेक्साडेसिमल नाम के साथ 2 निर्देशिका मिली ./journaljournalctlआदेशों केवल सबसे हाल ही में एक में काम करता है। इसलिए मुझे पुरानी निर्देशिका को मैन्युअल रूप से हटाना पड़ा और वह सुरक्षित है। के बाद मैं सिर्फ जर्नल में आकार सीमित आकार।
कीटलडॉग

1
  1. यदि आपको भविष्य में इसकी आवश्यकता हो तो इसे वापस करें:
    cp /run/log/journal/<temp-string>/system.journal /mylog/dir/back/system.journal.bak

  2. फ़ाइल साफ़ करें:
    cd /run/log/journal/<temp-string>/ >system.journal

  3. नवीनतम लॉग देखने के लिए जाँच करें:
    journalctl -xe


1

journalctl -bकेवल सबसे हाल के बूट से दिखाएगा। आप भी उपयोग कर सकते हैं -b -1, -b -2आदि आपका भयावह दिन अभी भी है लेकिन आपको इसे देखने की ज़रूरत नहीं होगी, जब तक कि आपको ज़रूरत न हो।


0

मेरा पिछला उत्तर सिर्फ "डुप्लिकेट" होने के लिए हटा दिया गया था। खैर, मेरे पिछले उत्तर में पर्याप्त स्पष्ट नहीं होने के लिए खेद है, लेकिन यह मौजूदा उत्तरों से अलग था। तो यहाँ एक अधिक विस्तृत संस्करण है:

journalctl -m --vacuum-time=1sमेरे लिए चाल चली। कृपया -mध्वज को नोटिस करें , यह आपकी सभी पत्रिकाओं को मर्ज करता है और फिर उन्हें साफ करता है। -mध्वज के बिना , यह मेरे मामले में (CentOS-7 पर) कुछ भी साफ नहीं किया।

आशा है ये मदद करेगा।

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