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-fastEjemplos:
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 bytesOpening 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.bz2File size: 67633622 bytesOpening output file linux-2.6.34.tar.bz2State 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.isoInitializing download: http://ubuntu.media.mit.edu/ubuntu-releases/10.04/ubuntu-10.04-netbook-i386.isoFile size: 733837312 bytesOpening output file ubuntu-10.04-netbook-i386.isoStarting 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.bz2Initializing download: ftp://ftp.es.kernel.org/pub/linux/kernel/v2.6/linux-2.6.34.tar.bz2File size: 67633622 bytesOpening output file linux-2.6.34.tar.bz2Starting downloadConnection 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.