scp
सत्यापित करता है कि उसने दूसरे पक्ष द्वारा भेजे गए सभी डेटा की प्रतिलिपि बनाई है। स्थानांतरण की अखंडता की गारंटी क्रिप्टोग्राफिक चैनल प्रोटोकॉल द्वारा की जाती है। इसलिए आपको स्थानांतरण के बाद अखंडता को सत्यापित करने की आवश्यकता नहीं है। यह बेमानी होगा, और किसी भी हार्डवेयर त्रुटि को पकड़ने की संभावना नहीं है क्योंकि आपके द्वारा तुलना किए जा रहे डेटा को संभवतः कैश से पढ़ा जाएगा। डेटा को समय-समय पर सत्यापित करना उपयोगी हो सकता है, लेकिन स्थानांतरण के बाद तुरंत सत्यापित करना व्यर्थ है।
हालाँकि आपको यह सुनिश्चित करने की ज़रूरत है कि आप scp
यह नहीं बता रहे हैं कि कुछ गलत हो गया है। एक त्रुटि संदेश होना चाहिए, लेकिन विश्वसनीय संकेतक यह है कि scp
यदि कुछ गलत हो गया है तो एक नॉनजेरो एग्जिट कोड लौटाता है।
अधिक सटीक रूप से, आप जानते हैं कि फ़ाइल scp
0 (यानी सफलता की स्थिति कोड) रिटर्न सही ढंग से प्रसारित की गई थी । जब आप किसी भी कमांड को चलाते हैं, तो यह जांचना कि बाहर निकलने की स्थिति 0 आवश्यक है। यदि scp
कोई त्रुटि स्थिति देता है, या यदि यह एक सिग्नल द्वारा मारा जाता है, या यदि यह कभी नहीं मरता है क्योंकि सिस्टम क्रैश हो जाता है या इसे चलाते समय बिजली खो देता है, तो आपके पास कोई गारंटी नहीं है। विशेष रूप से, चूंकि scp
फ़ाइल को इसके अंतिम नाम से सीधे कॉपी किया जाता है, इसका मतलब है कि आप सिस्टम क्रैश की स्थिति में आंशिक फ़ाइल के साथ समाप्त कर सकते हैं। कॉपी किया गया हिस्सा सही होने की गारंटी है लेकिन फ़ाइल को छोटा किया जा सकता है।
बेहतर विश्वसनीयता के लिए, scp के बजाय rsync का उपयोग करें। जब तक अन्यथा निर्देश न दिया जाए, तब तक rsync एक अस्थायी फ़ाइल को लिखता है, और इसे समाप्त होने पर इसे स्थानांतरित कर देता है। इस प्रकार, यदि rsync एक सफलता कोड देता है, तो आप जानते हैं कि फ़ाइल मौजूद है और एक सही, पूर्ण प्रतिलिपि; यदि rsync ने कोई त्रुटि कोड नहीं दिया है, तो कोई फ़ाइल मौजूद नहीं होगी (जब तक कि फ़ाइल का कोई पुराना संस्करण न हो, उस स्थिति में पुराने संस्करण को संशोधित नहीं किया जाएगा)।
scp
और स्टडर्र के साथ त्रुटि संदेश के साथ , यह सब कुछ सही और पूरी तरह से कॉपी कर चुका होगा।