Linux cpio कमांड संपूर्ण गाइड

भूमिका

लिनक्स कर्नेल के initramfs वातावरण और सर्वर बैकअप वर्कफ़्लो में cpio यूटिलिटी का अत्यधिक व्यापक रूप से इस्तेमाल किया जाता है। फ़ाइलों को पैक, अनपैक और सीधे ट्रांसफर करने के लिए यह टूल तीन प्रमुख परिचालन मोड पेश करता है: copy-out (-o), copy-in (-i), तथा copy-pass (-p)। इस तकनीकी गाइड में, हम हैंड्स-ऑन कमांड और व्यावहारिक उदाहरणों के माध्यम से समझेंगे कि वास्तविक सिस्टम एडमिनिस्ट्रेशन कार्यों में इस टूल की मदद से सुरक्षित बैकअप और त्वरित रीस्टोर कैसे लागू किया जाता है।

1. cpio पैकेज इंस्टॉलेशन और आर्काइव तैयार करने की बुनियादी विधि (copy-out)

Ubuntu सिस्टम पर इस टूल की कार्यप्रणाली को व्यवहार में परखने के लिए सबसे पहले APT रिपॉजिटरी इंडेक्स को रीफ़्रेश करें और पैकेज इंस्टॉल करें।

पैकेज रिपॉजिटरी अपडेट करें और cpio इंस्टॉल करें

परीक्षण के लिए एक अलग टेस्ट डायरेक्टरी तैयार करें और उसमें अभ्यास हेतु कुछ डमी टेक्स्ट फ़ाइलें जनरेट करें।

वर्कस्पेस डायरेक्टरी बनाएं और सैंपल फ़ाइलें जनरेट करें

परंपरागत आर्काइविंग टूल्स की तुलना में cpio की विशेषता यह है कि यह फ़ाइल पाथ्स की सूची को स्टैंडर्ड इनपुट (stdin) के माध्यम से ग्रहण करता है। इसके बाद यह इनपुट्स को एक सिंगल कंबाइंड आर्काइव फ़ाइल में स्ट्रीम करता है या मौजूदा आर्काइव से डेटा बाहर निकालता है।
मौजूदा डायरेक्टरी की फ़ाइलों को पाइपलाइन के जरिए पास करके एक नई बैकअप फ़ाइल (archive.cpio) पैकेज करें।

⚙️ [महत्वपूर्ण कमांड विकल्प]

-o (--create) : इनपुट सूची से नया आर्काइव तैयार करने वाला copy-out मोड सक्रिय करता है।
-i (--extract) : आर्काइव पैकेज में से फ़ाइलों को बाहर निकालने (रीस्टोर करने) का copy-in मोड चालू करता है।
-p (--pass-through) : मध्यवर्ती आर्काइव फ़ाइल बनाए बिना फ़ाइलों को एक ट्री से दूसरी ट्री में सीधे स्ट्रीम करने वाला copy-pass मोड चलाता है।
-v (--verbose) : टर्मिनल पर प्रोसेस की जा रही प्रत्येक फ़ाइल का विवरण प्रदर्शित करता है।
-t (--list) : डेटा एक्सट्रेक्ट किए बिना आर्काइव में मौजूद फ़ाइलों और डायरेक्टरीज़ का इंडेक्स दिखाता है।
-d (--make-directories) : एक्सट्रैक्शन के दौरान आवश्यकता पड़ने पर सब-डायरेक्टरीज़ अपने आप निर्मित करता है।
-u (--unconditional) : यदि टारगेट लोकेशन पर समान नाम वाली फ़ाइल पहले से हो, तो बिना पुष्टि के ओवरराइट करता है।
-H (--format) : आर्काइव का हेडर फ़ॉर्मेट (जैसे newc, crc, या tar) मैन्युअल रूप से सेट करता है।

फ़ाइल सूची को पाइप करके आर्काइव बनाएं

जनरेट की गई archive.cpio फ़ाइल के स्टोरेज साइज़ और फ़ाइल एट्रीब्यूट्स को मानव-पठनीय (human-readable) फ़ॉर्मेट में जांचें।

निर्मित आर्काइव फ़ाइल का साइज़ और अनुमतियाँ सत्यापित करें

2. आर्काइव फ़ाइल का विश्लेषण एवं डेटा रीस्टोरेशन (copy-in)

बिना अनपैक किए आर्काइव के भीतर छिपी फ़ाइलों, उनकी परमिशन और ओनरशिप संरचना का मुआयना करने के लिए -t और -v फ़्लैग्स का संयुक्त उपयोग करें।
रीडायरेक्शन ऑपरेटर (<) का उपयोग कर आर्काइव को इनपुट के रूप में देने से आप एक्सट्रेक्ट करने से पूर्व सुरक्षा परीक्षण कर सकते हैं।

आर्काइव के आंतरिक कंटेंट का प्रीव्यू देखें

रीस्टोर परीक्षण को सुरक्षित और अलग रखने के उद्देश्य से एक पृथक रिकवरी डायरेक्टरी बनाएं और उस फ़ोल्डर में स्विच करें।

रीस्टोर के लिए नया फ़ोल्डर बनाएं और उसमें जाएं

अब archive.cpio में मौजूद फ़ाइलों को रिकवरी डायरेक्टरी में एक्सट्रेक्ट करने के लिए cpio -idv कमांड निष्पादित करें।
मिसिंग डायरेक्टरीज़ को स्वतः तैयार करने के लिए -d फ़्लैग और निष्पादन प्रगति देखने के लिए -v फ़्लैग का संयोजन एक सुरक्षित रीस्टोर सुनिश्चित करता है।

आर्काइव से फ़ाइलों को सफलतापूर्वक रीस्टोर करें

लक्षित डायरेक्टरी में फ़ाइलें अपनी मूल स्थिति में सफलतापूर्वक पुनर्स्थापित हुई हैं या नहीं, इसकी पुष्टि करने के लिए डायरेक्टरी सूची चेक करें।

रीस्टोर की गई फ़ाइलों की विस्तृत सूची जांचें

3. डायरेक्टरी ट्री का तीव्र प्रत्यक्ष क्लोनिंग (copy-pass)

फ़ोल्डर ट्री रेप्लिकेशन का परीक्षण करने के लिए सोर्स डायरेक्टरी में एक नेस्टेड सब-फ़ोल्डर जोड़ें और उसमें एक सैंपल फ़ाइल बनाएं।

नेस्टेड डायरेक्टरी और टेस्ट फ़ाइल तैयार करें

क्लोन की जाने वाली संरचना को सुरक्षित रूप से ग्रहण करने के लिए डेस्टिनेशन डायरेक्टरी बनाएं।

टारगेट डायरेक्टरी का निर्माण करें

सोर्स फ़ोल्डर में जाकर find कमांड की मदद से पूरी डायरेक्टरी ट्री को स्कैन करें और उसे पाइप के जरिए cpio के copy-pass (-p) मोड में भेजें। यह तकनीक डिस्क पर कोई मध्यवर्ती आर्काइव फ़ाइल बनाए बिना मेमोरी स्ट्रीम के माध्यम से डेटा को सीधे टारगेट लोकेशन पर पहुंचाती है।
पाथ संरचना बनाए रखने के लिए -d, ओरिजिनल टाइमस्टैम्प सुरक्षित रखने के लिए -m, और लॉगिंग के लिए -v का उपयोग करके संपूर्ण फ़ोल्डर संरचना को सटीक रूप से क्लोन किया जा सकता है।

बिना आर्काइव बनाए सीधे डायरेक्टरी संरचना को क्लोन करें

लक्ष्य डायरेक्टरी में सभी सब-फ़ोल्डर्स और फ़ाइलें बिना किसी विसंगति के कॉपी हुई हैं या नहीं, इसकी पड़ताल रिकर्सिव लिस्टिंग के जरिए करें।

क्लोन किए गए डायरेक्टरी ट्री की रिकर्सिव पुष्टि

4. स्टैंडर्ड SVR4/newc फ़ॉर्मेट आर्काइव बनाना और gzip कंप्रेशन

लिनक्स बूटलोडर और initramfs द्वारा समर्थित आधुनिक मानक SVR4 पोर्टेबल प्रारूप (newc) है। find कमांड के आउटपुट को cpio -H newc में भेजें और उसे तुरंत gzip -9 (अधिकतम कंप्रेशन) के साथ जोड़कर एक संपीड़ित आर्काइव (initramfs_sample.cpio.gz) तैयार करें।

newc फ़ॉर्मेट में आर्काइव बनाकर gzip से संपीड़ित करें

तैयार की गई initramfs_sample.cpio.gz फ़ाइल वास्तव में मान्य gzip-कंप्रेस्ड बाइनरी डेटा है या नहीं, यह परखने के लिए file यूटिलिटी का उपयोग करें।

निर्मित फ़ाइल का MIME प्रकार और संपीड़न स्वरूप जांचें

कंप्रेस्ड आर्काइव के डेटा को अनपैक करने का अभ्यास करने के लिए एक फ्रेश अनपैक फ़ोल्डर बनाएं और उसमें स्विच करें।

कंप्रेस्ड डेटा अनपैक करने के लिए नई डायरेक्टरी बनाएं

फ़ाइल को डिस्क पर सीधे अनज़िप किए बिना, zcat से डेटा स्ट्रीम को डीकंप्रेस करें और उसे सीधे पाइप के माध्यम से cpio -idv को सौंपकर सभी फ़ाइलों को रीस्टोर करें।

zcat और cpio पाइपलाइन के संयोजन से ऑन-द-फ़्लाई रीस्टोर करें

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

पुनर्प्राप्त फ़ाइलों और डायरेक्टरीज़ का अंतिम सत्यापन

इस गाइड में हमने Ubuntu वातावरण में cpio टूल के कोर ऑपरेशन्स—आर्काइव निर्माण, एक्सट्रैक्शन, डायरेक्ट्री क्लोनिंग, और बूट-इमेज कंपैटिबल फ़ॉर्मेट्स—को विस्तार से समझा।
यूनिक्स पाइपलाइन फिलॉसफी और इन उपयोगी फ़्लैग्स में दक्षता हासिल करके आप लिनक्स में बैकअप ऑटोमेशन और सिस्टम रिकवरी को अत्यधिक तीव्र और विश्वसनीय बना सकते हैं।