परिचय: बिना डीकंप्रेशन bz2 डेटा का त्वरित विश्लेषण
उत्पादन सर्वर पर भारी-भरकम .bz2 आर्काइव्स को बार-बार अनपैक करने से न केवल स्टोरेज की बर्बादी होती है, बल्कि मूल्यवान I/O समय भी खर्च होता है। Linux एडमिनिस्ट्रेटर के लिए bzcat एक बेहद कारगर टूल है, जो आर्काइव को डिस्क पर एक्सट्रैक्ट किए बिना उसके डेटा को सीधे स्टैंडर्ड आउटपुट (stdout) में स्ट्रीम कर देता है। इस ट्यूटोरियल में हम bzcat के कोर वर्किंग फ्लो से लेकर लॉग मॉनिटरिंग पाइपलाइन्स में इसके व्यावहारिक उपयोग का संपूर्ण विश्लेषण करेंगे।
bzip2 यूटिलिटी सेटअप और हैंड्स-ऑन टेस्ट आर्काइव तैयार करना
Ubuntu वर्कस्टेशन या सर्वर पर bzcat का इस्तेमाल सुनिश्चित करने के लिए रिपॉजिटरी अपडेट करके bzip2 पैकेज इंस्टॉल करें:

परीक्षण के उद्देश्य से echo कमांड की मदद से सैंपल डेटा वाली एक डमी लॉग फाइल app.log तैयार करते हैं:

मूल टेक्स्ट फाइल को सुरक्षित रखते हुए उसका कंप्रेस्ड वर्जन बनाने के लिए bzip2 -k app.log कमांड चलाएं:

डायरेक्टरी में उपस्थित ओरिजिनल और कंप्रेस्ड दोनों फाइलों के स्टोरेज आकार की पुष्टि ls -lh app.log* से करें:

bzcat कमांड की बुनियादी कार्यप्रणाली: टर्मिनल पर सीधा आउटपुट
जब आप किसी .bz2 फाइल पर bzcat चलाते हैं, तो यह फाइल सिस्टम पर कोई भी अस्थायी फाइल बनाए बिना कंप्रेस्ड बिटस्ट्रीम को डिकोड करके सीधे टर्मिनल कंसोल पर प्रदर्शित कर देता है। यह आर्किटेक्चर डिस्क स्पेस बचाता है और जीबी-साइज की लॉग्स को तुरंत पढ़ने में सक्षम बनाता है।
⚙️ [महत्वपूर्ण कमांड विकल्प]
-s : प्रोसेसिंग के दौरान गैर-जरूरी चेतावनियों को दबाकर केवल क्रिटिकल एरर्स दिखाता है।-f : अनकंप्रेस्ड प्लेन फाइल्स या असामान्य इनपुट स्ट्रीम को भी बलपूर्वक रीड करने की अनुमति देता है।-v : डीकंप्रेशन प्रोसेस की आंतरिक स्थिति और विस्तृत विवरण स्क्रीन पर प्रस्तुत करता है।-k : कंपैटिबिलिटी फ्लैग के रूप में इनपुट आर्काइव को मिटने से रोकता है।

Linux पाइपलाइन्स: grep और wc के साथ कंप्रेस्ड डेटा की प्रोसेसिंग
सिस्टम में समस्या निवारण के दौरान कंप्रेस्ड आर्काइव के भीतर विशिष्ट पैटर्न खोजने के लिए bzcat के आउटपुट को पाइप (|) ऑपरेटर के जरिए सीधे grep में भेजा जा सकता है। उदाहरण के लिए, app.log.bz2 में दर्ज ERROR एंट्रीज को बिना डीकंप्रेस किए इस तरह फिल्टर करें:

इसी प्रकार, कंप्रेस्ड फाइल में कुल रिकॉर्ड्स या लाइनों की संख्या तुरंत जांचने के लिए आउटपुट स्ट्रीम को wc -l टूल की ओर रीडायरेक्ट किया जा सकता है:

मल्टीपल bz2 आर्काइव्स को जोड़ना और आउटपुट रीडायरेक्ट करना
रोटेटेड या कई टुकड़ों में बंटी फाइलों के साथ काम करने के लिए पहले एक और सैंपल फाइल app2.log बनाकर उसे कंप्रेस करते हैं:

यदि आपके पास दैनिक या प्रति घंटे के आधार पर विभाजित कई .bz2 लॉग्स हैं, तो उन्हें अलग-अलग अनपैक करने के बजाय bzcat के साथ एक कतार में पास करके निरंतर स्ट्रीम के रूप में पढ़ा जा सकता है:

दोनों फाइलों के स्ट्रीम आउटपुट को सिंगल कंसोलिडेटेड फाइल में बदलने के लिए शेल रीडायरेक्शन ऑपरेटर (>) का उपयोग करके merged.log में सेव करें:

अंत में, नव-निर्मित merged.log को cat से पढ़कर सत्यापित करें कि दोनों कंप्रेस्ड स्रोतों का डेटा सही क्रम में एकत्रित हुआ है या नहीं:

bzcat कमांड Linux सिस्टम एडमिनिस्ट्रेशन और DevOps वर्कफ़्लो में समय और डिस्क स्पेस दोनों की भारी बचत करता है। बड़े डेटा आर्काइव्स और रोटेटेड सर्वर लॉग्स की जांच करते समय इस टूल को अपनी पाइपलाइन्स में शामिल करके आप अपने इंफ्रास्ट्रक्चर की कार्यक्षमता को काफी बढ़ा सकते हैं।