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

Я только что обновил аппаратную часть своего компьютера (процессор + материнская плата + графическая карта + память + жесткий диск), поэтому необходима установка новой ОС. Я пытался загрузить 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
39
задан 7 November 2012 в 17:26

2 ответа

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

Читает текстовый файл в формате:

files.txt:

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

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

aria2files.sh files.txt

Он создает каталоги и загружает в них. Он может создавать вложенные каталоги, как показано во втором примере.

Подробнее см. Мой пост Скрипт Bash для загрузки файлов с URL-адресов в указанные каталоги, перечисленные в текстовом файле .

0
ответ дан 7 November 2012 в 17:26

Почему бы не попробовать axel? Это полноценный загрузчик командных строк.
установите axel и загрузите spawn по axel -a -n [Num_of_Thread] link1 link2 link3 ..., где '[Num_of_Thread]' - количество параллельных соединений, создаваемых для каждой ссылки, которую вы хотите загрузить.

-a просто показывают улучшенный индикатор выполнения.

0
ответ дан 7 November 2012 в 17:26

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

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