Как сделать wget более быстрым или многопоточным?

Я только что обновил свое компьютерное оборудование (cpu + материнская плата + графическая карта + память + жесткий диск), чтобы установить новую ОС. Я попытался загрузить debian-6.0.6-amd64-netinst.iso с помощью команды wget, но скорость настолько медленная, что я не мог вынести. 4Kb/s ~ 17 Kb/s, медленный, как черепаха, или еще медленнее, если я использую Chrome.

Я прочитал справочную информацию wget , кажется, что есть никакие опции не могли бы сделать это быстрее.

Есть ли способ сделать wget быстрее? Или можно сделать многопоточную загрузку?

PS: моя пропускная способность 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
задан 7 November 2012 в 19:26

1 ответ

Я попробовал axel по рекомендации Гуфрана, но он меня очень огорчил. Моя цель состояла в том, чтобы найти замену CLI для DownThemAll, потому что он запускает процессор и жесткий диск и замедляет работу всей системы даже на 8-ядерном Mac Pro. Я также хотел многопоточную замену для wget и curl, а не некоторый клочок скрипта, который запускает несколько экземпляров из них. Поэтому я искал дальше и нашел то, что, как я думаю, сейчас является самым современным многопоточным загрузчиком CLI, есть - aria2. Большая проблема, с которой я столкнулась с axel, заключалась в том, что она «подделала» загрузку файлов через SSL. Я поймал это, сделав это с помощью tcdump. Он загружал ссылки https как обычные http. Это действительно разозлило меня, и если бы я не проверил, у меня было бы ложное чувство безопасности. Я сомневаюсь, что многие люди знают об этом серьезном нарушении безопасности. Возвращаясь к aria2, он более продвинут, чем любой другой загрузчик. Он поддерживает протоколы HTTP (S), FTP, BitTorrent и Metalink, является мультиплатформенным и является партизанским загрузчиком. Он максимизирует пропускную способность моего ISP без нагрузки на процессор или жесткий диск, в отличие от DTA. Страница руководства гигантская. Я никогда не буду использовать больше, чем несколько из его многочисленных вариантов. И о, BTW, я проверил его производительность SSL с tcdump, и он прочен, а не подделка. Я написал сценарий, который имитирует поведение DTA, если не его удобство.

Основная команда, которую я использую для получения максимальной пропускной способности, -

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"
[d6 ] Он читает текстовый файл формата:

files.txt:

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

Сценарий читает имя файла из командной строки:

aria2files.sh files.txt
[d9 ] Он создает каталоги и загружает их. Он может создавать вложенные каталоги, как показано во втором примере.

Подробнее см. Мой пост aria2 .

42
ответ дан 25 May 2018 в 04:38
  • 1
    Можете ли вы применить свой метод и здесь askubuntu.com/q/813483/25388 Моя неудачная попытка aria2c -x10 -s10 http://horatio.cs.nyu.edu/mit/tiny/data/tiny_images.bin. – Léo Léopold Hertz 준영 17 August 2016 в 21:29
  • 2
    Спасибо @ hmj6jmh! Для записи на малиновой Pi Model 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 20 March 2018 в 17:58

Другие вопросы по тегам:

Похожие вопросы: