उत्पादों का चुनाव
📝

ZIP बैकअप बहाल करने की जाँच: फ़ाइलों की संख्या समान हो तब भी बदलाव कैसे पकड़ें

संपादकीय टीम के 8 कृत्रिम फ़ाइलों वाले प्रयोग में गायब फ़ाइल और समान आकार का बदलाव पकड़ा गया। CSV परिणाम और सुरक्षित दोहराव के लिए PowerShell स्क्रिप्ट।

ZIP बैकअप बहाल करने की जाँच: फ़ाइलों की संख्या समान हो तब भी बदलाव कैसे पकड़ें

बैकअप फ़ोल्डर में ZIP होना और उसका खुल जाना यह साबित नहीं करता कि अंदर की सामग्री मूल जैसी है। बहाल फ़ाइल के सापेक्ष पथ, बाइट आकार और SHA256 की तुलना मूल रिकॉर्ड से करें। SHA256 सामग्री से बनने वाला लंबा डिजिटल निशान है। नाम और आकार समान रहने पर भी सामग्री बदले तो इसके मिलान से अंतर पकड़ा जा सकता है।

इस लेख का काम मूल फ़ाइलों पर लिखे बिना छोटा बहाली परीक्षण करना और परिणाम में गायब फ़ाइल तथा बदली सामग्री को अलग पहचानना है। MillionsCode की संपादकीय टीम ने 8 कृत्रिम फ़ाइलें बनाईं, सच में ZIP बनाया और बहाल किया। फिर जानबूझकर दो त्रुटियाँ डालीं, ताकि जाँच उन्हें पकड़ती है या नहीं यह देखा जा सके। ग्राहक डेटा या निजी बैकअप इस्तेमाल नहीं किए गए।

आठ फ़ाइलों का वास्तविक परीक्षण

28 सितंबर 2026 को Windows में PowerShell 7.6.0-rc.1 और Microsoft.PowerShell.Archive 1.2.5 से प्रयोग हुआ। कई स्थिर संस्करणों की संगतता नहीं जाँची गई। डेटा में शून्य बाइट की फ़ाइल, खाली स्थान वाला कोरियाई फ़ाइल नाम, अलग सामग्री वाली दो 4-बाइट फ़ाइलें, अलग उपफ़ोल्डरों में समान नाम वाली फ़ाइलें, 256-बाइट बाइनरी फ़ाइल और निर्देश-पाठ था। कुल 8 फ़ाइलें और 372 बाइट थे।

पहले मूल फ़ाइलों की सूची बनाई। प्रत्येक फ़ाइल का प्रयोग फ़ोल्डर के सापेक्ष पथ, जैसे nested/level2/sample.txt, आकार और SHA256 दर्ज किया। उस फ़ोल्डर को ZIP में रखकर नए फ़ोल्डर में निकाला। मूल और बहाली में समान सापेक्ष पथ वाली फ़ाइलों का आकार और निशान मिलाया। सिर्फ नाम देखें तो अलग फ़ोल्डरों के दो sample.txt आपस में गड़बड़ा सकते हैं।

परीक्षणमूल फ़ाइलेंजाँची गई फ़ाइलेंमेलमिला अंतर
ZIP की नए फ़ोल्डर में सामान्य बहाली888कोई नहीं
बहाल समूह की अगली प्रतिलिपि में एक फ़ाइल जानबूझकर छोड़ी877अंदर के फ़ोल्डर की 15-बाइट फ़ाइल गायब
अलग बहाल समूह में AAAA को ZZZZ बनाया8874-बाइट फ़ाइल का SHA256 अलग

पहला परीक्षण सामान्य प्रक्रिया है। बाकी दो नियंत्रण परीक्षण हैं: त्रुटि डालने पर जाँच विफलता दिखाती है या नहीं। इससे यह निष्कर्ष नहीं निकलता कि ZIP उपकरण ने फ़ाइल खोई या खराब की। संपादकीय टीम ने कॉपी बनाते समय एक फ़ाइल छोड़ी और ZIP खोलने के बाद अलग प्रति में सामग्री बदली।

तीसरी स्थिति खास उपयोगी है। संख्या 8 रही और बदली फ़ाइल का आकार पहले और बाद में 4 बाइट रहा। केवल संख्या या फ़ोल्डर का आकार जाँचने से इसे सही माना जा सकता था, लेकिन सामग्री के निशान में एक फ़ाइल अलग मिली। संख्या और आकार त्वरित जाँच हैं; सामग्री का मेल अलग जाँच है।

परिणाम CSV कैसे पढ़ें

restore-summary.csv तीनों परीक्षणों का सार देता है। restore-comparison.csv में फ़ाइल-स्तर की 24 पंक्तियाँ हैं। Case परीक्षण का नाम और RelativePath फ़ोल्डर के भीतर स्थान है। ExpectedBytes और ActualBytes मूल तथा जाँची प्रति के आकार हैं। दो SHA256 स्तंभ सामग्री के निशान हैं।

  • MATCH: इस पथ की फ़ाइल का आकार और पूरा निशान दोनों मिले।
  • MISSING: मूल सूची का पथ जाँचे समूह में नहीं मिला। वास्तविक आकार की खाली जगह का अर्थ फ़ाइल गायब है, शून्य बाइट नहीं।
  • HASH_MISMATCH: आकार समान लेकिन सामग्री का निशान अलग है। इस फ़ाइल को दोबारा बहाल करके जाँचें।
  • आकार अलग हो तो स्क्रिप्ट SIZE_MISMATCH, और मूल सूची में न रही अतिरिक्त फ़ाइल पर UNEXPECTED दिखाती है। इन दो शाखाओं के लिए इस प्रयोग में अलग त्रुटियाँ डालकर परीक्षण नहीं किया गया।

उदाहरण के लिए same_size_change की same-a.txt पंक्ति में दोनों आकार 4 हैं। लेकिन मूल निशान 63C1DD95… और बदला निशान 96741164… से शुरू होता है। वास्तविक मिलान में पूरे 64 चिह्न इस्तेमाल हुए, केवल शुरुआत नहीं। empty.txt शुरू से शून्य बाइट की थी और सामान्य बहाली में उसका निशान मिला। हर शून्य-बाइट फ़ाइल को खराब मानने से जानबूझकर खाली रखी फ़ाइलें भी गलत ढंग से असफल होंगी।

अपने डेटा से पहले सुरक्षित अभ्यास

दोहराव की स्क्रिप्ट पढ़ें और अभ्यास फ़ोल्डर में restore-lab.ps1 नाम से सहेजें। विस्तार .ps1.txt न रह जाए, इसकी जाँच करें। यह स्क्रिप्ट उपयोगकर्ता की फ़ाइलों का पथ नहीं माँगती। हर बार अपने स्थान के नीचे नया परीक्षण फ़ोल्डर बनाती है और सिर्फ खुद बनाई फ़ाइलों को दबाती, बहाल करती तथा बदलती है। मूल मिटाने का आदेश और पुरानी बहाली पर जबरन लिखने का विकल्प नहीं है। पहले खाली अभ्यास फ़ोल्डर में रखें, सामग्री पढ़ें, फिर PowerShell से चलाएँ। कंपनी की नीति स्क्रिप्ट रोकती हो तो खुद नीति न हटाएँ; नीचे दी हाथ से करने वाली प्रक्रिया समझना भी उपयोगी है।

# restore-lab.ps1 वाले अभ्यास फ़ोल्डर में चलाएँ
& '.\restore-lab.ps1'

zip_restore का परिणाम PASS और जानबूझकर डाली दोनों त्रुटियों का परिणाम FAIL होना चाहिए। ControlBehavedAsExpected की तीनों पंक्तियाँ True हों तो इन सामान्य और त्रुटि स्थितियों में जाँच अपेक्षा के अनुसार चली। त्रुटि परीक्षण का FAIL सामान्य बैकअप की विफलता नहीं है। अंत में स्क्रीन पर दिखे नए फ़ोल्डर के CSV और results.json खोलकर समय, संस्करण और पूरे निशान देखें।

असली बैकअप की जाँच में ZIP बनाते समय की मूल सूची लें। बाद में बदली वर्तमान फ़ाइलों से तुलना करने पर सही पुराना बैकअप भी अलग दिख सकता है। महत्वपूर्ण फ़ाइलों की प्रतियों से पहले अभ्यास करें। बहाली के लिए खाली नया फ़ोल्डर चुनें, मूल स्थान को ZIP खोलने की मंजिल न बनाएँ।

मुख्य आदेश नीचे हैं। पथ सिर्फ उदाहरण हैं; अपने अभ्यास फ़ोल्डर के लिए ही बदलें। पहला अभ्यास मूल को ZIP बनाता है, दूसरा नए स्थान में बहाल करता है और आखिरी दो संबंधित फ़ाइलों के निशान दिखाते हैं। बहाली में source का अतिरिक्त स्तर इसलिए आता है क्योंकि स्वयं फ़ोल्डर को ZIP में रखा गया था।

Compress-Archive -LiteralPath '.\source' -DestinationPath '.\trial.zip'
Expand-Archive -LiteralPath '.\trial.zip' -DestinationPath '.\restore-new'
Get-FileHash -LiteralPath '.\source\notes.txt' -Algorithm SHA256
Get-FileHash -LiteralPath '.\restore-new\source\notes.txt' -Algorithm SHA256

Microsoft का Get-FileHash दस्तावेज़ सामग्री तुलना और डिफ़ॉल्ट SHA256 समझाता है। Expand-Archive निर्देश मंजिल और पुरानी फ़ाइल पर लिखने के विकल्प में अंतर बताते हैं। यहाँ पुरानी फ़ाइलों पर लिखने वाला -Force इस्तेमाल नहीं किया गया।

PASS के बाद भी क्या नहीं जाँचा गया

Q. क्या PASS का अर्थ पूरा बैकअप सुरक्षित है?

यहाँ PASS का अर्थ सिर्फ 8 कृत्रिम फ़ाइलों के पथ, आकार और सामग्री का बहाली के बाद मिलना है। SSD की गति, डिस्क की उम्र, क्लाउड सिंक की सफलता या बड़े बैकअप की विश्वसनीयता नहीं मापी गई। एक वातावरण में प्रयोग हुआ; अनुमति, मालिक, एन्क्रिप्शन कुंजी, ऐप सेटिंग और खुली डेटाबेस फ़ाइलों का परीक्षण नहीं हुआ। तालिका या फ़ोटो को उसके ऐप में खोलें। काम के सॉफ़्टवेयर के लिए संबंधित सामग्री भी लौटती है या नहीं, अलग जाँचें।

Q. छिपी या बड़ी फ़ाइलें भी इसी तरह जाँच सकते हैं?

Compress-Archive दस्तावेज़ बताता है कि छिपी फ़ाइलें और फ़ोल्डर छूट सकते हैं तथा फ़ाइल के आकार की सीमा है। इस छोटे ZIP उदाहरण को पूरे ऑपरेटिंग सिस्टम या छिपी सेटिंग के बैकअप का तरीका न मानें। मूल समूह में छिपी फ़ाइलें या 2GB और उससे बड़ी फ़ाइलें नहीं थीं।

Q. निशान मिल जाए तो जाँच पूरी है?

अगर मूल सूची ही गलत हो या फ़ाइलों के साथ वह भी बदल दी गई हो तो निशान का मेल प्रामाणिक मूल साबित नहीं करता। अलग रखी संदर्भ सूची और उसका बनाने का समय देखें। फ़ाइल गायब या अलग हो तो मूल हटाने से पहले उस पथ को दोबारा बहाल करें। सूची और निशान की जाँच के बाद आवश्यक दस्तावेज़ सच में खोलें। इससे केवल ZIP मौजूद होने की तुलना में अगली बहाली कार्रवाई ज्यादा साफ तय होती है।

संबंधित