Для загрузки дистрибутивов во FreeBSD по умолчанию в distfilesиспользуется только одно подключение. По этому загрузка идет в один поток. Если Вы будете браться за настройку нового сервера и необходимо устанавливать много софта, тогда Вам пригодится утилита axel. Axel открывает несколько соединений, каждое из которых загружает свою часть файла, в результате ускоряя время загрузки, похоже на downloadmaster для Windows.
Выполним установку axel из портов:
# cd /usr/ports/ftp/axel
# make install clean && rehash
Сборку выполним с поддержкой NLS - поддержка мультиязычности.
После установки - необходимо изменить загрузку с fetch на axel.
Создадим в /etc/ файл make.conf и добавим следующее:
FETCH_CMD=axel
FETCH_BEFORE_ARGS= -n 4 -a
DISABLE_SIZE=yes
где:
-n - количество соединений
-a - отображать статус загрузки
Доступные для использования ключи:
# axel -h
Usage: axel [options] url1 [url2] [url...]
-s x Specify maximum speed (bytes per second)
-n x Specify maximum number of connections
-o f Specify local output file
-S [x] Search for mirrors and download from x servers
-H x Add header string
-U x Set user agent
-N Just don't use any proxy server
-q Leave stdout alone
-v More status information
-a Alternate progress indicator
-h This information
-V Version information
Visit http://axel.alioth.debian.org/ to report bugs
Чтобы ознакомиться более детально с возможностями доступных опций, можно обратиться к странице руководства.
Проверим, "как это работает"... Выполним, для примера, загрузку дистрибутива PHP:
# cd /usr/ports/lang/php55
# make fetch
===> License check disabled, port has not defined LICENSE
===> Found saved configuration for php5-5.2.9
=> php-5.3.9.tar.bz2 doesn't seem to exist in /usr/ports/distfiles/.
=> Attempting to fetch http://dk.php.net/distributions/php-5.3.9.tar.bz2
Начинаю скачивание: http://dk.php.net/distributions/php-5.3.9.tar.bz2
Размер файла: 11704944 байта(ов)
Открывается выходной файл php-5.3.9.tar.bz2
Начинаем скачивание
[ 54%] [......0 ......1 .......2 .....3 ] [ 230,3KB/s] [00:22]
Также можно использовать axel для загрузки файлов из сети. Пример загрузки файла:
# axel -n 4 -a http://host.domine.name/file122.rar
Начинаю скачивание: http://host.domine.name/file122.rar
Размер файла: 2077584769 байта(ов)
Открывается выходной файл file122.rar
Начинаем скачивание
[ 52%] [.....0 ...1 .....2 ....3 ....4 ....5 ] [ 20,7MB/s] [12:56]
По завершению загрузки имеем небольшой отчет:
# axel -n 4 -a http://host.domine.name/file122.rar
Начинаю скачивание: http://host.domine.name/file122.rar
Размер файла: 2077584769 байта(ов)
Открывается выходной файл test.zip
Начинаем скачивание
Соединение 2 закончилось ]
Соединение 0 закончилось ]
Соединение 3 закончилось ]
Соединение 1 закончилось ]
Соединение 4 закончилось ]
[100%] [..................................................] [ 20,7MB/s] [00:00]
2056,4 мегабайта(ов) скачано за 15:24 секунд(ы). (8703,06 КБ/с)
Очень полезная утилитка 🙂