लगातार कर्ल के साथ फिर से शुरू डाउनलोडिंग


17

मैं एक पर हूँ MAC और फ़ाइलों की एक सूची मैं एक ftp सर्वर से डाउनलोड करना चाहते हैं। कनेक्शन थोड़ा छोटा है, इसलिए मैं चाहता हूं कि कनेक्शन हटा दिया जाए और फिर से शुरू करें।

मुझे पता है कि मैं इसे wget के साथ कर सकता हूं, लेकिन दुर्भाग्य से Mac OS X wget के साथ नहीं आता है। मैं इसे स्थापित कर सकता हूं, लेकिन ऐसा करने के लिए (जब तक कि मुझे कुछ याद न हो) मुझे पहले XCode और MacPorts स्थापित करने की आवश्यकता है, जिससे मैं बचना चाहूंगा।

कर्ल उपलब्ध है, हालांकि ऐसा लगता है, लेकिन मुझे नहीं पता कि यह कैसे काम करता है या वास्तव में इसका उपयोग कैसे करना है। यदि मेरे पास पाठ फ़ाइल में फ़ाइलों की एक सूची है (प्रति पंक्ति एक पूर्ण पथ, जैसे ftp: // उपयोगकर्ता: पास @ सर्वर / dir / file1 ) मैं उन सभी फ़ाइलों को डाउनलोड करने के लिए कर्ल का उपयोग कैसे कर सकता हूं? और क्या मैं कभी हार नहीं मान सकता हूं? जैसे, असीम रूप से पुनः प्रयास करें और डाउनलोड को फिर से शुरू करें जहां यह बंद हो गया और इस तरह?

जवाबों:


20

गुग्लिंग और मैन रीडिंग और कुछ समय के बाद मैंने एक समाधान निकाला है जो मेरे लिए काम कर रहा है:

curl ftp://server/dir/file[01-30].ext --user user:pass -O --retry 999 --retry-max-time 0 -C -
  • [01-30] यह file01.ext, file02.ext नाम की 30 फाइलें डाउनलोड करेगा
  • --user user:pass स्पष्ट होना चाहिए
  • -O मूल नाम के साथ फ़ाइलों के उत्पादन के लिए
  • --retry 999 999 बार पुन: प्रयास करने के लिए
  • --retry-max-time 0इसे समय से पहले रोकने के लिए। यदि आप एक निश्चित - ब्रेट्री-विलंब निर्दिष्ट नहीं करते हैं, तो डिफ़ॉल्ट व्यवहार रिट्रीट के बीच पहले एक सेकंड को सोने के लिए है, फिर इसे दोगुना, जब तक कि यह 10 मिनट तक नहीं पहुंच जाता। रिट्रीट के बीच
  • -C -इसे जारी रखने के लिए जहां यह गिरा है (यदि आप फिर से कमांड चलाते हैं)। बाद में पानी का छींटा यह बताता है कि कहां से फिर से शुरू करना है

अगर कोई जानता है कि फ़ाइल के बदले फ़ाइलनाम कैसे प्राप्त करें, तो कृपया मुझे बताएं।


मैन पेज में यह निम्नलिखित कहा गया है:

--url <URL>
लाने के लिए एक URL निर्दिष्ट करें। यह विकल्प अधिकतर तब उपयोगी होता है जब आप किसी कॉन्फ़िगर फ़ाइल में URL (s) निर्दिष्ट करना चाहते हैं।

ऐसा लगता है कि कुछ हो सकता है, लेकिन यह कैसे इस्तेमाल किया जाएगा समझ में नहीं आता ...


2

आप कॉन्फ़िगर फ़ाइल निर्दिष्ट करने के लिए कर्ल करने के लिए -K विकल्प का उपयोग कर सकते हैं। उस स्थिति में, आप सिंटैक्स का उपयोग करते हैं:

optionname=<value>

यदि आपके पास URL की सूची वाली फ़ाइल है, तो आप इस तरह कर्ल का उपयोग कर सकते हैं:

sed 's/\(.*\)/-O\nurl=\1/g' url_list.txt | curl -K -

जो url की सूची को बदल देता है, जैसे:

http://host1.com/foo.html
http://host2.com/bar.html

इस तरह एक प्रारूप में:

-O
url=http://host1.com/foo.html
-O
url=http://host2.com/bar.html

कर्ल पढ़ता है और उन विकल्पों में से प्रत्येक की व्याख्या करता है।

HTH,

एडम

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.