2012-05-25 7 views
11

से बूट संदेशों मैं एक फ़ाइल रंग कोड युक्त है:प्रदर्शन फ़ाइल bootlog डेमॉन

Fri May 25 17:13:04 2012: [....] Starting MTA: exim4^[[?25l^[[?1c^[7^[[1G[^[[32m ok ^[[39;49m^[8^[[?25h^[[?0c. 
Fri May 25 17:13:05 2012: [....] Loading cpufreq kernel modules...^[[?25l^[[?1c^[7^[[1G[^[[32m ok ^[[39;49m^[8^[[?25h^[[?0cdone (acpi-cpufreq). 

मैं कैसे प्रदर्शित कर सकते हैं यह एक linux टर्मिनल पर colorized?

+3

क्या बिल्ली 'काम नहीं करती है? –

+0

बिल्ली केवल सभी^^ ['के बाद ही अपने ऑक्टल समकक्ष '033' द्वारा प्रतिस्थापित किया गया है, इसके बाद मेरा स्वयं का उत्तर देखता है। – ripat

उत्तर

13

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

[....] Starting periodic command scheduler: cron 

तब, जब सेवा या कमांड निष्पादित किया जाता है, तो अब बचने अनुक्रम कंसोल के लिए भेज दिया जाता है और प्रिंट ठीक है, असफल, जानकारी, आदि चेतावनी दी है ...

[ ok ] Starting periodic command scheduler: cron. 

इन सभी संदेशों bootlogd डेमॉन द्वारा कब्जा कर लिया और स्थान बदलने एक सहित अपने सभी भागने दृश्यों के साथ एक फ़ाइल को लिखा जाता है। फ़ाइल को सही तरीके से प्रदर्शित करने के लिए ^[ को octal 033 द्वारा प्रतिस्थापित किया जाना चाहिए। लेकिन, क्योंकि एक पकड़ है, इसलिए डिमन कर्सर पुनर्स्थापना अनुक्रम के निर्देशांक को बदले बिना संदेश के सामने एक तिथि टिकट भी जोड़ता है। नतीजतन, ठीक, विफल आदि ... संदेश दिनांक टिकट के हिस्से को ओवरराइट करते हैं। अच्छा नहीं है।

Fri May 25 17:13:01 2012: [....] Starting periodic command scheduler: cron 
becomes... 
[ ok ay 25 17:13:01 2012: [....] Starting periodic command scheduler: cron. 

समाधान उस कर्सर स्थिति अनुक्रम को बदलने के लिए है। कोशिश और त्रुटि से मैंने पाया कि अनुक्रम ^[1G होना चाहिए। निम्नलिखित एसईडी आदेश अंत में काम करवाने के:

sed 's/\^\[/\o33/g;s/\[1G\[/\[27G\[/' /var/log/boot 

bootlogd डेमॉन फाइल करने के लिए सांत्वना संदेश भेजने से पहले सभी एस्केप अनुक्रम शुद्ध करना चाहिए। क्या हम इसे एक बग कह सकते हैं?

इस "बग" भी उबंटू, मिंट आदि जैसे सभी डेबियन वारिस में मौजूद हो सकता है ...

+0

+1 यहां वही समस्या है। आपके 'sed' स्वरूप सही ढंग से लॉग हैं। यह मेरे लिए एक स्पष्ट बग है, और यह देखते हुए कि डेबियन में 'bootlogd' पैकेज लॉगिंग के बारे में है:" _bootlogd सिस्टम बूट के दौरान सिस्टम कंसोल पर मुद्रित सभी संदेशों को लॉग करता है, और उन संदेशों को logfile._ "(' dpkg पर रिकॉर्ड करता है) bootlogd ver के bootlogd'। 2.88dsf-22.1), मैं इसे एक महत्वपूर्ण मानता हूं। – Alberto

+1

आउटपुट को 'कम-'' तक पाइप किया जा सकता है। डेबियन व्हीजी में /etc/init.d/kbd से एक एकल लॉग लाइन को छोड़कर, यह मेरे लिए अच्छा काम करता है। – mivk

4

की तो ripat जवाब मेरे लिए काम नहीं किया। मुझे डेबियन विकी - https://wiki.debian.org/bootlogd पर एक विकल्प मिला।

इस लिखने के समय है:

sed $'s/\^\[/\E/g' /var/log/boot 

bootlogd संस्करण < 2.88 (कोई तारीख मोहर) के लिए।

sed $'s/\^\[/\E/g;s/\[1G\[/\[27G\[/' /var/log/boot 

लेकिन सभी पूरी तरह से मेरी लॉग की एक पंक्ति बाद प्रारूपों, केवल एक छोटा सा विसंगति: बाद के संस्करणों के लिए। ध्यान दें कि, इस मुद्दे के लिए बग रिपोर्ट में बताया गया है, sed पैटर्न पर अग्रणी $ इन समाधानों को विशिष्ट बनाता है।

+0

यह मेरे लिए एक FAIL लाइन के अपवाद के साथ भी काम करता था, जिसमें असफल होने के बाद बकवास पाठ का गुच्छा था। – Jez

2

आप बैश बनाया-इन का उपयोग कर सकते हैं:

$ echo "$(< /your/file)" 
+0

यह जेनकिंस कंसोल आउटपुट से रंगीन आउटपुट प्राप्त करने के लिए मेरे लिए बहुत अच्छा काम करता है। – dragon788

+0

/var/log/boot.log से रंगीन आउटपुट प्राप्त करने के लिए सही काम किया मैं सिर्फ यह देखना चाहता था कि यह करने योग्य था या नहीं और यह सुनिश्चित है कि यह पर्याप्त है। – user1003916

+0

मैंने कोशिश की और यह काम करता है। लेकिन बड़ी डेटा फ़ाइलों के लिए, मैं आउटपुट (नेविगेशन और खोज के लिए भी) पृष्ठ बनाना चाहता था, इसलिए मैंने इसे 'कम' के माध्यम से पाइप करने का प्रयास किया। दुर्भाग्य से, 'कम' ने रंगीकरण को हटा दिया और चरित्र कोड को उनके मानव-पठनीय समकक्षों के साथ बदल दिया। –

1

less -R /your/file की कोशिश करो।

मुझे पता चला कि more डिफ़ॉल्ट रूप से वास्तव में करता है जो मैं अपेक्षा करता हूं: यह टर्मिनल में रंगीन पाठ दिखाता है। तथ्य यह है कि more काम किया, जबकि less (यह छोटा चचेरा भाई) ने मुझे man less पृष्ठ पर नहीं देखा।

ऐसा लगता है कि less-R झंडा है, जो कच्चे नियंत्रण पात्रों के रूप में ESC दृश्यों आउटपुट का समर्थन करता है। यह वही व्यवहार है जो आपको more के साथ मिलता है, साथ ही सभी खोज और नेविगेशन एन्हांसमेंट जो less के साथ मानक आते हैं।

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^