कैसे तेजी से या मल्टीथ्रेडिंग बनाने के लिए?


39

मैंने अभी-अभी अपना कंप्यूटर हार्डवेयर (cpu + मदरबोर्ड + ग्राफिक कार्ड + मेमोरी + हार्ड डिस्क) अपग्रेड किया है, ताकि एक नया OS स्थापित हो। मैंने कमांड के debian-6.0.6-amd64-netinst.isoसाथ डाउनलोड करने की कोशिश की wgetलेकिन गति इतनी धीमी है कि मैं सहन नहीं कर सका। 4Kb/s ~ 17 Kb/sअगर मैं क्रोम का उपयोग करता हूं, तो धीमी गति से चल रहे कछुए की तरह, या इससे भी अधिक धीमा।

मैंने wget की सहायता जानकारी पढ़ी है , ऐसा लगता है कि कोई विकल्प नहीं हैं जो इसे और तेज़ बना सकता है।

वहाँ वैसे भी तेजी से wget बनाने के लिए है ? या क्या इसे बहु-थ्रेडिंग डाउनलोड करना संभव है ?

पुनश्च: मेरा बैंडविड्थ 4M है। मैं इस कमांड का उपयोग करता हूं:

wget -c url  http://hammurabi.acc.umu.se/debian-cd/6.0.6/amd64/iso-cd/debian-6.0.6-amd64-netinst.iso

1
wget सिर्फ आपके कनेक्शन का उपयोग करता है। तो अगर इसकी धीमी, सर्वर के साथ अपने कनेक्शन thats शायद आप धीमा हैं, शायद सर्वर है। btw 4mbit = 0.5mb / s, नुकसान आदि का उल्लेख नहीं करने के लिए
Dr_Bunsen

@Dr_Bunsenआपकी सलाह के लिए धन्यवाद, मैंने कमांड की कोशिश की जो @Gufranसुझाव दिया: axelचौड़ाई की तुलना में wget, axelपहले से कहीं ज्यादा तेज है। मुझे लगता है कि ज्यादातर स्थितियों में, मेरी डाउनलोडिंग गति 1 की अड़चन है । कुछ ने बैंडविड्थ पर कब्जा कर लिया (जैसा आपने कहा: मैं धीमा हूं )। । एकल सूत्रण। । सर्वर धीमा है। लेकिन मुझे 1 और 3 बिंदु से कोई लेना-देना नहीं है ।
तीफी

@ टिफि एक संभावना यदि axelमल्टी- थ्रू एक ही रिमोट सर्वर का उपयोग करते समय wget से बेहतर प्रदर्शन करता है, तो आपके बॉक्स और दूरस्थ सर्वर के बीच विलंबता बहुत अधिक है। दूरस्थ सर्वर पर अपने पिंग की जाँच करें।
जॉन सियु John

क्या आपने HTTrack की कोशिश की है? canrack.com/page/1/en/index.html
amanthethy

जवाबों:


52

कोशिश क्यों नहीं की axel? यह पूरी तरह से कमांड लाइन पर आधारित डाउनलोडर है।

द्वारा स्थापित करें axelऔर डाउनलोड करें

axel -a -n [Num_of_Thread] link1 link2 link3 ...

जहाँ '[Num_of_Thread]'आप डाउनलोड करना चाहते हैं प्रत्येक लिंक के लिए समानांतर कनेक्शन की संख्या है।

-a बस एक बेहतर प्रगति पट्टी दिखाएं।

कई अन्य डाउनलोड प्रबंधकों के विपरीत, एक्सल एक सिंगल थ्रेड का उपयोग करके सभी डेटा को सीधे गंतव्य फ़ाइल में डाउनलोड करता है। यह अंत में कुछ समय बचाता है क्योंकि कार्यक्रम को सभी डाउनलोड किए गए भागों को संक्षिप्त नहीं करना है।


मैं सोच रहा था कि क्या कोई रास्ता है, शायद उर्फ ​​और रैपर के माध्यम से कुल्हाड़ी या विग के बजाय उपलब्ध होने पर एक्सल का उपयोग करें, जब तक कि कमांड लाइन में एक से अधिक पैरामीटर न हों।
सोरिन

1
मुझे लगता है कि यह प्रस्ताव एक फ़ाइल के डाउनलोड के लिए पर्याप्त नहीं है। कृपया, यदि आवश्यक हो तो मुझे सुधारें। मेरे प्रयास यहाँ askubuntu.com/q/813483/25388
लियो लियोपोल्ड हर्ट्ज 준영

54

मैंने गुफरान की सिफारिश axelपर कोशिश की लेकिन इसने मुझे बहुत निराश किया। मेरा लक्ष्य एक सीएलआई प्रतिस्थापन खोजना था क्योंकि यह सीपीयू और हार्ड डिस्क को हॉग करता है और 8-कोर मैक प्रो पर भी पूरे सिस्टम को धीमा कर देता है। मैं भी के लिए एक बहु-क्रम प्रतिस्थापन चाहता था और नहीं एक स्क्रिप्ट है कि इन के कई उदाहरण चलाता है के कुछ kludge,। इसलिए मैंने आगे खोज की और पाया कि जो मैं अभी सोचता हूं, वह परम आधुनिक मल्टीथ्रेडेड सीएलआई डाउनलोडर है - aria2 । मेरे पास जो बड़ी समस्या थी, वह यह थी कि एसएसएल के ऊपर फाइल डाउनलोड करने में यह 'फेक' था। मैंने ऐसा करते हुए पकड़ लिया । यह साधारण के रूप में लिंक डाउनलोड कर रहा थाDownThemAllwgetcurlaxeltcdumphttpshttp। यह वास्तव में मुझे परेशान कर रहा था और अगर मैंने जाँच नहीं की होती, तो मुझे सुरक्षा की झूठी समझ होती। मुझे संदेह है कि कई लोग सुरक्षा में इस गंभीर उल्लंघन के बारे में जानते हैं। पर वापस जाना aria2, यह किसी भी अन्य डाउनलोडर की तुलना में अधिक उन्नत है। यह HTTP (एस), एफ़टीपी, बिटटोरेंट, और मेटलिंक प्रोटोकॉल का समर्थन करता है, मल्टीप्लायर है, और डाउनलोड गुरिल्ला है। यह डीटीए के विपरीत, सीपीयू या हार्ड डिस्क पर लोड के बिना मेरे आईएसपी के बैंडविड्थ को अधिकतम करता है। मैन पेज विशाल है। मैं इसके कई विकल्पों में से कुछ का उपयोग कभी नहीं करूंगा। और ओह, बीटीडब्ल्यू, मैंने इसके एसएसएलटी प्रदर्शन के साथ जाँच की tcdumpऔर यह ठोस है, नकली नहीं है। मैंने एक स्क्रिप्ट लिखी जो डीटीए के व्यवहार की नकल करती है, अगर इसकी सुविधा नहीं है।

अधिकतम बैंडविड्थ प्राप्त करने के लिए मैं जिस मूल कमांड का उपयोग करता हूं वह है

aria2c --file-allocation=none -c -x 10 -s 10 -d "mydir" URL

-cयदि यह बाधित हो जाता है, तो डाउनलोड को जारी रखने की अनुमति देता है, -x 10और -s 10प्रति सर्वर 10 कनेक्शन तक अनुमति देता है, और -d "mydir"फ़ाइल को निर्देशिका में आउटपुट करता है mydir

aria2files.sh:

#!/bin/bash

filename="$1" # get filename from command line argument

while read -r line
do
    if [ "$line" ] # skip blank lines
    then
        if [[ "$line" =~ (https?|ftp)\:\/\/ ]] # line contains a URL, download file
        then
            echo "URL: '$line'"
            aria2c --file-allocation=none -c -x 10 -s 10 -d "$currdir" "$line"
        else # line contains a directory name, create directory if not already present
            echo "Directory: '$line'"
            currdir="$line"
            if [ ! -d "$currdir" ]
            then
                mkdir -p "$currdir" # '-p' enables creation of nested directories in one command
            fi
        fi
    fi
done < "$filename"

यह प्रारूप की एक पाठ फ़ाइल पढ़ता है:

files.txt:

dierctory 1
url1
url2
…
directory 2/subdirectory/sub-subdirectory/…
url3
url4
…
…
…

स्क्रिप्ट कमांड लाइन से फ़ाइल नाम पढ़ती है:

aria2files.sh files.txt

यह निर्देशिका और उन्हें डाउनलोड बनाता है। यह नेस्टेड निर्देशिका बना सकता है जैसा कि दूसरे उदाहरण में दिखाया गया है।

अधिक विवरण के लिए , एक पाठ फ़ाइल में सूचीबद्ध URL से निर्दिष्ट निर्देशिकाओं की फ़ाइलों को डाउनलोड करने के लिए मेरी पोस्ट बैश स्क्रिप्ट देखें ।


क्या आप यहां अपना तरीका भी पूछ सकते हैं, askubuntu.com/q/813483/25388 मेरा असफल प्रयास aria2c -x10 -s10 http://horatio.cs.nyu.edu/mit/tiny/data/tiny_images.bin
लेओ लेपोल्ड हर्ट्ज़ '

धन्यवाद @ hmj6jmh! रैप्सबेरी पाई मॉडल 3 पर रिकॉर्ड के लिए: wget -4 -c <https://URL/ISO_FILE>मुझे ~ 40 केबी / सेकंड देता है ( 87300K .......... .......... 11% 38.7K 4h28mजब उसी फ़ाइल के साथ डाउनलोड किया गया aria2c --disable-ipv6 -c~ 250 केबी / सेकंड 144MiB/717MiB(20%) CN:1 DL:250KiB ETA:39m3s])
tuk0z

1
यदि आप (मेरे जैसे) सोर्सफोर्ज से बचना चाहते हैं, aria2 रिपॉजिटरी का हिस्सा है, तो आप इसे स्थापित कर सकते हैंsudo apt install aria2
बार

अच्छा उत्तर। HTTPS- को बल देने वाली साइटों के लिए, axelस्ट्रेट-अप काम नहीं करता है। ऐसा लगता है कि HTTPS का उपयोग करने के लिए अपडेट किया गया है, लेकिन वह संस्करण अभी तक मेरे रिपॉजिटरी में नहीं है। aria2मेरे लिए अच्छा काम किया।
WindowsEscapist
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.