Acelerar descargas con Axel y Script apt-fast en Ubuntu

El pipeling o también llamada pipelining es una técnica utilizada para acelerar procesos, mediante la ejecución simultanea de instrucciones.

Axel utiliza este método para acelerar las descargas. Para instalarlo debes recurir al clásico apt-get:

sudo apt-get install axel

aquí un ejemplo de su utilización:
axel http://cdimage.gnewsense.org/gnewsense-livecd-deltah-i386-2.3.iso

No olvides que puedes usar man para ver todas las opciones.

Ahora instalaremos apt-fast que utiliza las caracteristicas de Axel para hacer más rápidas las descargas de actualizaciones o instalación de software.
Para instalarlo solo ingresas lo siguiente:
sudo add-apt-repository ppa:tldm217/tahutek.net && sudo apt-get update && sudo apt-get install apt-fast


Ahora en vez de utilizar apt-get para actualizar e instalar software podemos utilizar apt-fast Ejemplos:
sudo apt-fast dist-upgrade

sudo apt-fast install geany

sudo apt-fast install algunpaquete
Digamos que quieres descargar los 66049 KB comprimidos con bzip2 de la versión 2.6.34 del kernel
axel ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.34.tar.bz2
Initializing download: ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.34.tar.bz2
File size: 67633622 bytes
Opening output file linux-2.6.34.tar.bz2
Starting download
[  0%]  .......... .......... .......... .......... ..........  [  43.5KB/s]
[  0%]  .......... .......... .......... .......... ..........  [  87.3KB/s]
[  0%]  .......... .......... .......... .......... ..........  [ 118.3KB/s]
---
[ 18%]  .......... .......... .......... .......... ..........  [ 790.3KB/s]
[ 18%]  .......... .......... .......... .......... ..........  [ 793.1KB/s]
Si la descarga fue interrumpida por obra y gracia de tu ISP, luego puedes reanudar la descarga simplemente ejecutando el mismo comando.
Initializing download: ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.34.tar.bz2
File size: 67633622 bytes
Opening output file linux-2.6.34.tar.bz2
State file found: 12853085 bytes downloaded, 54780537 to go.
Starting download
        ,......... .......... .......... .......... ..........  [  33.9KB/s]
[ 19%]  .......... .......... .......... .......... ..........  [  51.2KB/s] 



Nada nuevo bajo el sol. Axel funcionó igual que wget, pero solo en apariencia porque en realidad lanzó cuatro conexiones simultáneas para descargar el archivo. Para hacerlo más claro, cambia la manera en que axel indica el progreso de la descarga -la anterior muy verbosa, por cierto- por una que exponga el trabajo de cada conexión con la opción -a. También indica que sólo quieres ¡8 conexiones! para descargar Ubuntu Netbook Edition con la opción -n.


axel -n 8 -a http://ubuntu.media.mit.edu/ubuntu-releases/10.04/ubuntu-10.04-netbook-i386.iso
Initializing download: http://ubuntu.media.mit.edu/ubuntu-releases/10.04/ubuntu-10.04-netbook-i386.iso
File size: 733837312 bytes
Opening output file ubuntu-10.04-netbook-i386.iso
Starting download
[ 45%] [..0      1     ...2    ..3      ..4     ..5     .6     ...7     ] [   1.3MB/s] [05:58] 
>


Las ocho conexiones son un abuso, lo sé. Con un poco más de ética, aún podemos usar axel para descargar a gran velocidad el mismo archivo pero desde distintos servidores. Para ello regresa al ejemplo del kernel Linux y descárgalo desde tres servidores distintos: España (es), Brazil (br) y México (mx).


axel -n 3 -a ftp://ftp.{es,br,mx}.kernel.org/pub/linux/kernel/v2.6/linux-2.6.34.tar.bz2
Initializing download: ftp://ftp.es.kernel.org/pub/linux/kernel/v2.6/linux-2.6.34.tar.bz2
File size: 67633622 bytes
Opening output file linux-2.6.34.tar.bz2
Starting download
Connection 0 finished                                                          ]
Connection 2 finished                                                          ]
Connection 1 finished                                                          ]
[ 98%] [................................................3 ] [ 360.8KB/s] [00:02] 



Solo tienes que listar los servidores como argumentos para axel. En el ejemplo anterior aprovechamos que las llaves expanden su contenido en Bash.
 

votar
No hay comentarios