यह पीटर के उत्तर के समान ही है, लेकिन उपयोगकर्ता को वह रिमोट फ़ाइल का विकल्प देता है जिसे वह चाहता है, और जहां वह इसे सहेजना चाहता है (साथ ही ssh पर rsync का संचालन भी करता है)। अपने उपयोगकर्ता नाम और होस्ट के साथ क्रमशः USER और HOST बदलें।
#! / Bin / bash
echo -e "कृपया पूर्ण दर्ज करें (बच गया) फ़ाइल पथ:"
पढ़ें -r पथ
गूंज "पथ: $ पथ"
इको-ई "गंतव्य दर्ज करें:"
read -r dst
गूंज "गंतव्य: $ dst"
जबकि [1]
करना
rsync --progress --partial --append -vz -e ssh "USER @ HOST: $ पाथ" $ dst
अगर ["$?" = "0"]; फिर
गूंज "rsync सामान्य रूप से पूरा"
बाहर जाएं
अन्य
इको "rsync विफलता। एक मिनट में पुन: प्रयास कर रहा है ..."
60 सो जाओ
फाई
किया हुआ
यहां उपयोग किए गए rsync विकल्प स्थानांतरण के दौरान प्रगति के आँकड़ों को सक्षम करते हैं, अप्रत्याशित विफलता पर आंशिक फ़ाइलों की बचत और फिर से शुरू होने पर आंशिक रूप से पूर्ण फ़ाइलों को जोड़ने की क्षमता रखते हैं। -V विकल्प वर्बोसिटी बढ़ाता है, -z विकल्प संपीड़न (एक धीमी गति से कनेक्शन के लिए अच्छा है, लेकिन दोनों छोरों पर अधिक सीपीयू शक्ति की आवश्यकता होती है), और -e विकल्प हमें ssh पर इस हस्तांतरण का संचालन करने में सक्षम बनाता है (एन्क्रिप्शन हमेशा अच्छा होता है)।
नोट: इसका उपयोग केवल तभी करें जब आपके पास सार्वजनिक कुंजी लॉगिन आपके ssh के साथ सक्षम हो, अन्यथा यह पुनरारंभ होने पर आपको पासवर्ड के लिए पूछेगा (स्क्रिप्ट की सभी कार्यक्षमता को मारना)।
while ./run_script; do echo "Retrying..."; done; echo "Done."
सुनिश्चित करें किrun_script
रिटर्न0
सफलता पर।