Axel – Un acelerador de descargas de archivos por línea de comandos para Linux

Si eres el tipo de persona que disfruta descargando y probando varias distribuciones de Linux, estamos seguros de que recibirás con los brazos abiertos un acelerador de descargas que habla y actúa según su descripción.

En esta guía, te presentaremos Axel, un clon ligero de wget que no tiene dependencias (excepto gcc y makeutils).

Axel – Linux Commandline Download Accelerator

Aunque su descripción indica que está especialmente diseñado para sistemas críticos de bytes, axel se puede instalar en cualquier lugar y se puede utilizar no solo para descargar múltiples archivos simultáneamente a través de enlaces HTTP/FTP, sino también para acelerarlos.

Instalación de Axel, un acelerador de descargas de línea de comandos para Linux. Como mencionamos anteriormente, axel no es solo otra herramienta de descarga. Acelera las descargas de HTTP y FTP utilizando múltiples conexiones para recuperar archivos del destino y también se puede configurar para usar múltiples espejos.

Como mencionamos anteriormente, axel no es solo otra herramienta de descarga. Acelera las descargas HTTP y FTP al utilizar múltiples conexiones para recuperar archivos desde el destino y también se puede configurar para usar múltiples espejos.

Si esto no fuera suficiente para motivarte a probarlo, simplemente agreguemos que axel admite la cancelación automática y la reanudación de conexiones que son inresponsivas o no devuelven ningún dato después de un período de tiempo dado.

Además, si tienes permiso para hacerlo, puedes aprovecharte de axel para abrir múltiples conexiones FTP simultáneas a un servidor con el fin de multiplicar el ancho de banda asignado por conexión.

Si no tienes permitido hacerlo o no estás seguro al respecto, puedes abrir múltiples conexiones a servidores separados y descargar de todos ellos al mismo tiempo.

Por último, pero no menos importante, axel se diferencia de otros aceleradores de descarga Linux en que coloca todos los datos en un solo archivo en el momento de la descarga, a diferencia de escribir datos en archivos separados y unirlos en una etapa posterior.

En CentOS/RHEL 8/7, necesitarás habilitar el repositorio EPEL para instalar axel:

# yum install epel-release
# yum install axel

En Fedora, está disponible desde repositorios predeterminados.

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

En Debian y derivados como Ubuntu y Linux Mint, puedes instalar axel directamente con aptitud:

# aptitude install axel

En Arch Linux y distribuciones relacionadas como Manjaro Linux y OpenSUSE Linux, puedes instalar axel directamente con:

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

Una vez instalado axel, profundicemos con ambas piernas.

Configurando Axel – Acelerador de descargas en Linux

Puedes configurar axel usando /etc/axelrc y pasar opciones adicionales deseadas en la línea de comandos cuando lo invoques. El archivo de configuración está bien documentado, pero revisaremos las opciones más útiles aquí:

reconnect_delay es el número de segundos que axel esperará antes de intentar nuevamente iniciar una nueva conexión al servidor.

max_speed es autoexplicativo. El valor se da en bytes por segundo (B/s). Es posible que desees establecer esta variable en un valor apropiado después de considerar tu ancho de banda disponible. Esto te ayudará a evitar que axel consuma una gran cantidad de tu ancho de banda mientras descarga.

Importante: Ten en cuenta que la tasa máxima real de descarga dependerá de tu conexión a Internet – no hace falta decir que establecer max_speed en 5 MB/s no hará nada si tu conexión a Internet alcanza un máximo de 1.22 MB/s (como fue en mi caso, como verás en los ejemplos a continuación – simplemente dejé ese valor para hacer el punto).

num_connections es el número máximo de conexiones que axel intentará iniciar. El valor recomendado (4) es suficiente para la mayoría de los casos y se da principalmente por respeto a otros usuarios de FTP. Tenga en cuenta que algunos servidores pueden ni siquiera permitir conexiones múltiples.

connection_timeout indica el número de segundos que axel esperará para recibir una respuesta antes de intentar abortar y reanudarla automáticamente.

http_proxy te permite establecer un servidor proxy en caso de que la variable de entorno HTTP_PROXY no haya sido establecida a nivel del sistema. Esta variable utiliza el mismo formato que HTTP_PROXY (http://:PORT).

no_proxy es una lista de dominios locales, separados por comas, que axel no debe intentar alcanzar a través de un proxy. Esta configuración es opcional.

buffer_size representa la cantidad máxima, en bytes, que se leerá de todas las conexiones actuales a la vez.

verbose te permite elegir si los mensajes relacionados con la descarga se imprimirán en la pantalla. Establece esto en 0 si deseas deshabilitarlo, o en 1 si aún deseas ver los mensajes.

interfaces te permite listar las interfaces de red que tienen acceso a Internet, en caso de tener más de una. Si no se establece explícitamente, axel utilizará la primera interfaz en la tabla de enrutamiento.

Opciones de configuración similares están disponibles en:

# axel --help

Si miras detenidamente, te darás cuenta de que la mayoría de las opciones de línea de comandos se asemejan a las del archivo de configuración. Además, la opción -o (–output) te permite especificar un nombre de archivo de salida.

Si se utiliza, anulará el nombre de archivo de origen. Si estableces alguna de las opciones de línea de comandos, anularán las establecidas en el archivo de configuración.

Cómo usar Axel para descargar archivos más rápido en Linux

Utilizaremos las siguientes configuraciones del archivo de configuración (descomenta las líneas correspondientes):

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

Ahora compararemos los tiempos de descarga de HTTP y FTP enlaces utilizando wget y axel. Puedes elegir cualquier archivo de cualquier tamaño, pero por simplicidad, descargaremos archivos de 100 MB disponibles desde:

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

Comparar tiempos de descarga FTP y Axel

Descarga FTP con wget (459 KB/s en promedio):
# wget ftp://speedtest:[email protected]/test100Mb.db
Download Files with FTP in Linux Using Wget
Descarga FTP con axel (1181.43 KB/s en promedio):
# axel -n 10 --output=axel-test100Mb.db ftp://speedtest:[email protected]/test100Mb.db
Download Files Over FTP Using Axel

Comparar tiempos de descarga HTTP y Axel

Descarga HTTP con wget (482 KB/s en promedio):
# wget http://speedtest.ftp.otenet.gr/files/test100Mb.db
Download Files Using HTTP with Wget
Descarga HTTP con axel (1178.93 KB/s en promedio):
# axel -n 10 --output=axel-test100Mb.db http://speedtest.ftp.otenet.gr/files/test100Mb.db
Download Files Over HTTP Using Axel

Como puedes ver en los resultados de las pruebas que realizamos anteriormente, axel puede acelerar significativamente una descarga de FTP o HTTP.

Resumen

En este artículo, hemos explicado cómo usar axel, un acelerador de descargas FTP/HTTP, y mostrado cómo funciona más rápido que otros programas como wget porque puede abrir múltiples conexiones simultáneas a servidores remotos.

¡No te lo pierdas: 5 Gestor de descargas más populares para tus sistemas Linux

¡No te lo pierdas: 10 Ejemplos de comandos Wget (descargador de archivos Linux) en Linux

Esperamos que lo que hemos mostrado aquí te motive a probar axel. No dudes en hacernos saber si tienes alguna pregunta o comentario sobre este artículo utilizando el formulario a continuación. Siempre esperamos recibir comentarios de nuestros lectores.

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