फ़ाइलों को डाउनलोड करने के लिए वैकल्पिक विकल्प


0

मुझे एक क्लाइंट के एफ़टीपी से १०,००० जिप फ़ाइलों को डाउनलोड करने की आवश्यकता है जिसमें उस पर लगभग ४०,००० आइटम हैं। मैंने चिंतन किया है:

$ cat > files.txt
file1
file2
file3
file4

साथ में

$ wget -i files.txt

क्या मुझे समय पर इतनी बड़ी राशि का बेहतर समाधान मिल सकता है?

जवाबों:


2

समाधान अच्छा और काफी ठोस है: उचित विकल्पों के साथ, wget ऐसी किसी भी फ़ाइल को पुनः प्राप्त करेगा और डाउनलोड करेगा जिसका स्थानांतरण बाधित हो गया है।

आप अधिकांश कमांड-लाइन एफ़टीपी ग्राहकों को भी लिपिबद्ध कर सकते हैं, हालाँकि (जैसे बीएसडी एफटीपी क्लाइंट)। परंतु wget इसमें बेहतर है कि आप इसे पहले से मौजूद फ़ाइलों को डाउनलोड न करने के लिए कॉन्फ़िगर कर सकते हैं, जो इसे सिंक के लिए बहुत सुविधाजनक बनाता है।

wget समर्थन (लिनक्स पर कम से कम) भी सीमित है, और समानांतर में डाउनलोड करने के लिए कई फ़ाइलों के बीच फ़ाइल सूची को वितरित करना काफी आसान है, या आप इसका उपयोग कर सकते हैं जीएनयू समानांतर


1

wget यदि आप उपलब्ध विकल्पों के लिए मैनुअल में खुदाई करते हैं, तो यह अच्छा और सक्षम है और शायद इस मामले में ठीक काम करेगा, जैसा कि इसेरनी के जवाब से पता चलता है। मैं अभी कुछ विकल्प बताता हूँ।

मैं उपयोग करता हूं LFTP एफ़टीपी और एसएफटीपी दोनों पर स्थानांतरण और समन्वय के लिए। इसमें एक आंतरिक कतारबद्ध प्रणाली है जो मेरे उपयोग के मामले के लिए अच्छी तरह से काम करती है, मिररिंग, रिवर्स मिररिंग, एफएक्सपी, सभी नियमित एफ़टीपी कार्यों और अधिक (यहां तक ​​कि बिटटोरेंट आजकल) का समर्थन करती है।

इस मामले में यह काफी आसान लगता है बस एक स्क्रिप्ट का उपयोग करें और wget, लेकिन मैं एक ऐसे कार्यक्रम का उल्लेख करना चाहता था जिसने एफ़टीपी को मेरे लिए स्थानांतरित कर दिया।

मैंने भी इस्तेमाल किया है NcFTP यह एक बहुत अच्छा बैच सिस्टम है, लेकिन मेरे लिए LFTP के पक्ष में सौदा ब्रेकर यह था कि यह FTP और SFTP दोनों का समर्थन करता था।

एक और विकल्प है rsync जो कि FTP का भी समर्थन करता है, और शायद आप पहले से ही इसके लिए उपयोग किए जाते हैं। यह भी काफी उन्नत विकल्प फ़िल्टरिंग और फिर से शुरू टूटी डाउनलोड के अनुसार तैयार है।

बैच की तुलना में "वास्तविक" एफ़टीपी ग्राहक के साथ एक फायदा wget उपयोग यह है कि सर्वर से एकल कनेक्शन का पुन: उपयोग किया जा सकता है, जो प्रदर्शन को बढ़ा सकता है। मुझे यकीन नहीं है कि इसके लिए ऐसा कोई विकल्प है wget, लेकिन शायद वहाँ है। यदि यह एक सच्चा एक-बंद ऑपरेशन है, तो आप शायद कम या ज्यादा का उपयोग कर सकते हैं।


0

lftp इस पर बहुत अच्छा है। ध्यान दें जारी रहना तथा वाइल्डकार्ड का विस्तार करें से छोड़ता है।

lftp :~> help mirror
Usage: mirror [OPTS] [remote [local]]
Mirror specified remote directory to local directory

-सी, - कंटिन्यू संभव होने पर मिरर जॉब जारी रखें  -e, --delet रिमोट साइट पर मौजूद फाइलें डिलीट न करें      - नया-नया स्थानांतरित करने से पहले पुरानी फ़ाइलों को हटाएं  -s, --allow-suid सेट रिमोट साइट के अनुसार suid / sgid बिट्स      -आधार-चाउन फाइलों पर मालिक और समूह को सेट करने का प्रयास करें      --ignore- समय डाउनलोड करने के लिए तय करने के समय की उपेक्षा करें  -n, - केवल-नई डाउनलोड केवल नई फ़ाइलें (-सी काम नहीं करेगा)  -r, -no-recursion उपनिर्देशिका में नहीं जाते हैं  -p, --no-perms फ़ाइल अनुमतियां सेट नहीं करते हैं      -no-umask फ़ाइल मोड में umask लागू नहीं करते हैं  -R, - रिवर्स मिरर (फाइलें लगाएं)  -L, --dereference फाइल के रूप में प्रतीकात्मक लिंक डाउनलोड करें  -N, --newer-than = स्पेसिफ़िकेशन निर्दिष्ट समय की तुलना में केवल नई फ़ाइलें डाउनलोड करें  -पी, - समानांतर [= एन] समानांतर में एन फाइलें डाउनलोड करें  -i RX, --include RX में मैचिंग फाइलें शामिल हैं  -x RX, --exclude RX मिलान फ़ाइलों को बाहर                         आरएक्स को नियमित अभिव्यक्ति दी जाती है  -v, --verbose [= N] क्रिया संचालन      --log = FILE लिखने वाली Lftp कमांड को FILE में निष्पादित किया जा रहा है      --script = FILE में Lftp कमांड लिखें, लेकिन उन्हें निष्पादित न करें      - अन्याय-प्रिंट, --dry-run same as --script = -

-R का उपयोग करते समय, पहली निर्देशिका स्थानीय होती है और दूसरी दूरस्थ होती है। यदि दूसरी निर्देशिका को छोड़ दिया जाता है, तो पहली निर्देशिका के बेसन का उपयोग किया जाता है। यदि दोनों निर्देशिकाओं को छोड़ दिया जाता है, तो वर्तमान स्थानीय और दूरस्थ निर्देशिकाओं का उपयोग किया जाता है।

lftp :~> help mget
Usage: mget [OPTS] 
Gets selected files with expanded wildcards
 -c  continue, reget
 -d  create directories the same as in file names and get the
     files into them instead of current directory
 -E  delete remote files after successful transfer
 -a  use ascii mode (binary is the default)
 -O  specifies base directory or URL where files should be placed
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.