Многопоточная загрузка дистрибутива Axel FreeBSD

| 25.10.2013

Для загрузки дистрибутивов во 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 КБ/с)

Очень полезная утилитка 🙂

 

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

5 × 3 =

Подтвердите, что Вы не бот — выберите человечка с поднятой рукой: