Axel – командный загрузчик файлов для Linux

Если вы тот человек, который любит загружать и пробовать несколько дистрибутивов Linux, мы уверены, что вы с открытыми объятиями приветствуете ускоритель загрузки, который говорит то, что обещает – один, который делает то, что указано в его описании.

В этом руководстве мы познакомим вас с Axel, легким клоном wget, который не имеет зависимостей (кроме gcc и makeutils).

Axel – Linux Commandline Download Accelerator

Хотя в его описании указано, что он особенно подходит для систем, где важна каждая байт, axel можно установить в любом месте и использовать не только для одновременной загрузки нескольких файлов по ссылкам HTTP/FTP, но и для увеличения скорости загрузки.

Установка Axel, командной строки для ускорения загрузки в LinuxКак мы уже упоминали ранее, axel – это не просто еще один инструмент для загрузки. Он ускоряет загрузку по протоколу HTTP и FTP, используя несколько соединений для получения файлов с сервера и также может быть настроен на использование нескольких зеркал.

Как мы упоминали ранее, аксель – это не просто еще одна программа для загрузки файлов. Он ускоряет HTTP и FTP загрузки, используя несколько соединений для получения файлов с указанного места и также может быть настроен для использования нескольких зеркал.

Если этого было недостаточно, чтобы заинтересовать вас в испытании его, давайте добавим, что аксель поддерживает автоматическое прерывание и возобновление соединений, которые не отвечают или не возвращают данные после определенного периода времени.

Кроме того, если у вас есть разрешение на это, вы можете использовать аксель для открытия нескольких одновременных FTP-соединений с сервером для умножения выделенной полосы пропускания на соединение.

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

Последнее, но не менее важное, аксель отличается от других ускорителей загрузки Linux тем, что он помещает все данные в один файл во время загрузки, а не записывает данные в отдельные файлы и объединяет их на более позднем этапе.

В CentOS/RHEL 8/7, вам нужно будет включить репозиторий EPEL для установки акселя:

# yum install epel-release
# yum install axel

В Fedora он доступен из стандартных репозиториев.

# yum install axel   
# dnf install axel   [On Fedora 23+ releases]

В Debian и производных продуктах, таких как Ubuntu и Linux Mint, вы можете установить axel напрямую с помощью aptitude:

# aptitude install axel

На Arch Linux и связанных дистрибутивах, таких как Manjaro Linux и OpenSUSE Linux, вы можете установить axel напрямую с помощью:

$ sudo pacman -S axel       [On Arch/Manjaro]
$ sudo zypper install axel  [On OpenSUSE]

После установки axel давайте окунемся в нее с головой.

Настройка Axel – ускоритель загрузки Linux

Вы можете настроить axel с помощью /etc/axelrc и передать дополнительные желаемые опции в командной строке при его вызове. Конфигурационный файл хорошо документирован, но мы рассмотрим здесь наиболее полезные опции:

reconnect_delay – это количество секунд, в течение которых axel будет ожидать перед тем, как снова попытаться установить новый соединение с сервером.

max_speed – это самоочевидный параметр. Значение дается в байтах в секунду (B/s). Возможно, вам захочется установить эту переменную на соответствующее значение после рассмотрения вашего доступного пропускной способности. Это поможет вам предотвратить использование axel большого количества вашей пропускной способности во время загрузки.

Важно: Обратите внимание, что фактическая максимальная скорость загрузки будет зависеть от вашего интернет-соединения – само собой разумеется, что установка max_speed на 5 МБ/с ничего не даст, если ваше интернет-соединение максимально может достигать 1,22 МБ/с (как это было в моем случае, как вы увидите в примерах ниже – я просто оставил это значение, чтобы сделать точку).

num_connections определяет максимальное количество соединений, которые axel попытается запустить. Рекомендуемое значение (4) достаточно для большинства случаев и дано в основном из уважения к другим пользователям FTP. Обратите внимание, что некоторые серверы могут не разрешать множественные соединения.

connection_timeout указывает количество секунд, в течение которых axel будет ожидать ответа, прежде чем попытаться прервать и возобновить его автоматически.

http_proxy позволяет установить прокси-сервер в случае, если переменная окружения HTTP_PROXY не была установлена системно. Эта переменная использует тот же формат, что и HTTP_PROXY (http://:PORT).

no_proxy представляет собой список локальных доменов, разделенных запятыми, которые axel не должен пытаться достичь через прокси. Этот параметр является необязательным.

buffer_size представляет собой максимальное количество байтов, которое будет прочитано с текущих соединений одновременно.

verbose позволяет выбрать, будут ли выводиться сообщения, связанные с загрузкой, на экран. Установите это значение на 0, если хотите отключить эту функцию, или на 1, если все же хотите видеть сообщения.

interfaces позволяет перечислить сетевые интерфейсы, которые имеют доступ к Интернету, если у вас их больше одного. Если это не задано явно, axel будет использовать первый интерфейс в таблице маршрутизации.

Похожие параметры конфигурации доступны по следующим ссылкам:

# axel --help

Если вы внимательно посмотрите, вы поймете, что большинство опций командной строки похожи на те, что в конфигурационном файле. Кроме того, опция -o (–output) позволяет указать имя выходного файла.

Если она используется, то переопределяет имя исходного файла. Если вы установите любую из опций командной строки, они переопределят те, что установлены в конфигурационном файле.

Как использовать Axel для быстрого скачивания файлов в Linux

Мы будем использовать следующие настройки из конфигурационного файла (раскомментируйте соответствующие строки):

reconnect_delay = 20
max_speed = 500000
num_connections = 4
connection_timeout = 30
buffer_size = 10240
verbose = 1
Configuring Axel Download Accelerator

Теперь мы сравним время загрузки с HTTP и FTP ссылок с использованием wget и axel. Вы можете выбрать файл любого размера, но для простоты мы будем загружать 100 MB файлы, доступные по:

  1. ftp://speedtest:[email protected]/test100Mb.db
  2. http://speedtest.ftp.otenet.gr/files/test100Mb.db

Сравните время загрузки FTP и Axel

Загрузка FTP с wget (в среднем 459 КБ/с):
# wget ftp://speedtest:[email protected]/test100Mb.db
Download Files with FTP in Linux Using Wget
Загрузка FTP с axel (в среднем 1181,43 КБ/с):
# axel -n 10 --output=axel-test100Mb.db ftp://speedtest:[email protected]/test100Mb.db
Download Files Over FTP Using Axel

Сравните время загрузки HTTP и Axel

Загрузка HTTP с wget (в среднем 482 КБ/с):
# wget http://speedtest.ftp.otenet.gr/files/test100Mb.db
Download Files Using HTTP with Wget
Загрузка HTTP с axel (в среднем 1178,93 КБ/с):
# axel -n 10 --output=axel-test100Mb.db http://speedtest.ftp.otenet.gr/files/test100Mb.db
Download Files Over HTTP Using Axel

Как видите в результатах тестов, которые мы провели выше, axel может значительно ускорить FTP или HTTP загрузку.

Итог

В этой статье мы объяснили, как использовать axel, ускоритель загрузки FTP/HTTP, и показали, что он работает быстрее, чем другие программы, такие как wget, потому что он может открывать несколько одновременных соединений с удаленными серверами.

Не пропустите: 5 самых популярных менеджеров загрузок для ваших Linux-систем

Не пропустите: 10 примеров команд Wget (загрузчика файлов Linux) в Linux

Мы надеемся, что то, что мы показали здесь, побудит вас попробовать axel. Не стесняйтесь обращаться к нам, если у вас есть какие-либо вопросы или комментарии по этой статье, используя форму ниже. Мы всегда рады получать отзывы от наших читателей.

Source:
https://www.tecmint.com/axel-commandline-download-accelerator-for-linux/