जवाबों:
डाउनलोड की गई फ़ाइलों की अखंडता को सत्यापित करने का सबसे आम तरीका एमडी 5 चेकसम का उपयोग करना है। यह मानता है कि आप जिस साइट से डाउनलोड कर रहे हैं, वह वास्तव में उनकी फाइलों के एमडी 5 चेकसम हैं। आप डाउनलोड की गई फ़ाइल का अपना चेकसम बनाकर और प्रकाशित चेकसम से तुलना करके MD5 चेकसम को सत्यापित कर सकते हैं। यदि वे समान हैं तो आपके द्वारा डाउनलोड की गई फ़ाइल पूर्ण है और छेड़छाड़ नहीं की गई है।
यदि आप उस फ़ाइल की अपेक्षा नहीं करते हैं जिसे आप बदलने के लिए डाउनलोड कर रहे हैं, तो आप एक चेकसम और हार्ड कोड को स्क्रिप्ट में प्रीकम्प्यूट कर सकते हैं, लेकिन यदि फ़ाइल को कभी अपडेट किया जाता है तो सत्यापन विफल हो जाएगा।
फ़ाइल चलाने के लिए MD5 चेकसम बनाना md5sum myFile
। Wget के मामले में आपको यह कमांड उपयोगी लग सकता है, खासकर यदि आप जो फ़ाइल डाउनलोड कर रहे हैं वह बड़ी है:
wget -O - http://example.com/myFile | tee myFile | md5sum > MD5SUM
।
यह डाउनलोड करते समय "myFile" का एक चेकसम बना देगा और इसे MD5SUM फ़ाइल में सहेज देगा, संभवतः आपको कुछ समय बचा सकता है।
एक गिरा कनेक्शन के मामले में मुझे लगता है कि सबसे अच्छा तरीका होगा कि आप बाहर निकलने के कोड की जांच करें। यदि डाउनलोड बिना किसी त्रुटि के सफल होता है, तो wget वापस आ जाएगा 0
। कुछ और इंगित करता है कि कुछ गलत हो गया। के "बाहर निकलने की स्थिति" अनुभाग पर एक नज़र डालें man wget
।
फ़ाइल को डाउनलोड करने के लिए उपयोग किए गए कमांड का रिटर्न कोड आपको बताएगा कि कमांड सफलतापूर्वक निष्पादित हुई या नहीं। आमतौर पर, 0 का रिटर्न कोड सफलता को दर्शाता है और कोई भी गैर-शून्य संख्या त्रुटि को दर्शाता है। आप $?
चर के माध्यम से रिटर्न कोड का उपयोग कर सकते हैं ।
एक मूल उदाहरण का उपयोग wget
होगा:
#!/bin/bash
wget foo.tgz &> /dev/null
if [[ "$?" != 0 ]]; then
echo "Error downloading file"
else
echo "Success"
fi
&> /dev/null
Wget के सभी आउटपुट को रीडायरेक्ट करता है /dev/null
इसलिए यह BUT स्क्रिप्टिंग के लिए आदर्श है, यह डीबगिंग wget
त्रुटियों को और अधिक कठिन बना देता है।
wget -q ... || { handle ; error ; }
man
उत्तर देने के लिए पढ़ने के दौरान और दो बातें जो मैं कहने जा रहा था, उसमें पहले से ही दो उत्तरों में यहाँ थीं - इसलिए मैंने दो टिप्पणियाँ कीं। आपको भी अच्छा लगा।
wget
लगता है कि डाउनलोड पूरा हो गया था, भले ही यह टूट गया। टूटे टीसीपी कनेक्शन बनाम बंद टीसीपी कनेक्शन के बारे में जानकारी जो HTTP के साथ समस्याग्रस्त है क्योंकि यह डिफ़ॉल्ट रूप से बंद मार्क के रूप में टीसीपी का उपयोग करता है। इसीलिए मैंने एक जाँच जोड़ी कि अगर हेडर से फ़ाइल का आकार, डाउनलोड किए गए फ़ाइल के आकार से मेल खाता है जब मैंने एक डाउनलोड किया था। सुनिश्चित नहीं है कि wget
क्या इस तरह की संगति जाँच या http युक्ति इस मुद्दे पर क्या कहती है।