यदि कमांड सफलतापूर्वक समाप्त हो गया है, तो बैकअप सही है, एक हार्डवेयर फॉल्ट को छोड़कर (जो आपके द्वारा किए जा रहे किसी भी सत्यापन को समान रूप से प्रभावित कर सकता है)। हार्डवेयर के दोषपूर्ण होने पर यह बाद में गलत हो सकता है, लेकिन अधिकांश स्टोरेज हार्डवेयर भ्रष्टाचार का पता लगाता है।
यहाँ एक कैविएट है: एक पाइपलाइन में, शेल बायीं ओर से त्रुटियों की रिपोर्ट नहीं करता है। (यह एक बहुत ही आम परिदृश्य में जहाँ दाएँ हाथ की ओर सभी डेटा, जैसे पढ़ने की जरूरत नहीं है की वजह से है some_command | head
तो यहाँ से एक पठन त्रुटि, और बाएं ओर मरता इसके उत्पादन नहीं रह गया है, क्योंकि चाहता था।) dd
चाहेंगे अनदेखा किया जाए। बैश में, pipefail
पाइपलाइन के सभी हिस्सों से त्रुटियों की रिपोर्ट करने का विकल्प सेट करें ।
इसके अलावा, सावधान रहें कि dd bs=…
कुछ त्रुटियों को अनदेखा करता है और dd
अक्सर विकल्पों की तुलना में धीमा होता है । मैं बिल्कुल भी उपयोग न करने की सलाह देता हूं dd
: पूरी फाइल को कॉपी करने का कोई लाभ नहीं है। जो आपने कहीं पढ़ा होगा, उसके विपरीत, dd
विशेष संपत्ति के साथ एक निम्न-स्तरीय डिस्क एक्सेस कमांड नहीं है, इसमें कोई जादू नहीं है dd
, जादू अंदर है /dev/hda
।
shopt -s pipefail
set -e
</dev/hda buffer -s 64k -S 10m | ssh myuser@myhost "cat > ~/image.img"
फिर भी, यदि आप बैकअप की जांच करना चाहते हैं, तो सबसे अच्छा तरीका है कि आप प्रत्येक पक्ष पर क्रिप्टोग्राफिक चेकसम लें और उनकी तुलना करें। उदाहरण के लिए:
ssh myuser@myhost "sha1sum image.img" &
sudo sha1sum /dev/hda
जाँच करें कि दो चेकसम समान हैं।
ध्यान दें कि यह जांच कि क्या बैकअप और मूल चेक के समय समान हैं। किसी भी चीज को आप /dev/hda
बिना किसी बदलाव के भी बढ़ते हुए और अनमाउंट करने सहित, (जो कई फाइल सिस्टमों पर अंतिम माउंट की तारीख को अद्यतन करेगा), चेकसम को बदल देगा। यदि आप बाद में अखंडता को सत्यापित करना चाहते हैं, तो बैकअप के समय डिस्क के चेकसम को नोट करें।