По умолчанию во FreeBSD для загрузки дистрибутивов в distfiles используется только одно подключение. Соответственно и загрузка идет в один поток. Также довольно часто зеркала ограничивают скорость соединения. Если необходимо установить один-два порта, то это не является существенной проблемой. А вот когда берешься за новый сервер и необходимо устанавливать много софта, затрачивая минимум времени, тогда и пригодится утилита axel. Axel открывает несколько соединений, каждое из которых загружает свою часть файла, в результате ускоряя время загрузки. Для загрузки используются зеркала, перечисленные в Makefile, или, если они переопределены, в make.conf.
Выполним установку axel из системы портов (пока еще загрузка пойдет в один поток ;) ):
# cd /usr/ports/ftp/axel && make install clean && rehash |
Сборку выполнил с поддержкой NLS - поддержка мультиязычности.
Следующий шаг - необходимо "подменить" стандартный fetch. Добавим в /etc/make.conf такой блок:
FETCH_CMD=axel FETCH_BEFORE_ARGS= -n 4 -a DISABLE_SIZE=yes |
где:
Доступные для использования ключи:
# 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/php5 && 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 6 -a http://test.muff.kiev.ua/test.zip
Начинаю скачивание: http://test.muff.kiev.ua/test.zip
Размер файла: 1469583360 байта(ов) Открывается выходной файл test.zip Начинаем скачивание [ 61%] [.....0 ...1 .....2 ....3 ....4 ....5 ] [ 9,7MB/s] [00:56]
|
По завершению загрузки имеем небольшой отчет:
# axel -n 6 -a http://test.muff.kiev.ua/test.zip
Начинаю скачивание: http://test.muff.kiev.ua/test.zip
Размер файла: 1469583360 байта(ов) Открывается выходной файл test.zip Начинаем скачивание Соединение 2 закончилось ]
Соединение 0 закончилось ] Соединение 3 закончилось ] Соединение 1 закончилось ] Соединение 4 закончилось ] [100%] [..................................................] [ 9,7MB/s] [00:00] 1401,5 мегабайта(ов) скачано за 2:24 секунд(ы). (9903,02 КБ/с)
|
Довольно неплохая альтернатива стандартному fetch.
Последние комментарии
17 недель 3 дня назад
41 неделя 5 дней назад
2 года 42 недели назад
3 года 12 недель назад
3 года 35 недель назад
3 года 50 недель назад
3 года 51 неделя назад
4 года 2 недели назад
4 года 13 недель назад
4 года 17 недель назад