10 ejemplos de comandos Wget (descargador de archivos de Linux) en Linux


En esta publicación vamos a revisar la utilidad wget que recupera archivos de World Wide Web (WWW) utilizando protocolos ampliamente utilizados como HTTP, HTTPS y FTP. La utilidad Wget es un paquete disponible gratuitamente y la licencia está bajo la licencia GNU GPL. Esta utilidad se puede instalar en cualquier sistema operativo similar a Unix, incluidos Windows y MAC OS. Es una herramienta de línea de comandos no interactiva. Característica principal de Wget de su robustez. Está diseñado de tal manera que funciona en conexiones de red lentas o inestables. Wget inicia automáticamente la descarga donde se dejó en caso de problemas de red. También descarga archivos de forma recursiva. Seguirá intentándolo hasta que el archivo se haya recuperado por completo.

Primero, verifique si la utilidad wget ya está instalada o no en su caja de Linux, usando el siguiente comando.

# rpm -qa wget

wget-1.12-1.4.el6.i686

Por favor, instálelo usando el comando YUM en caso de que wget aún no esté instalado o también puede descargar el paquete binario en http://ftp.gnu.org/gnu/wget/.

# yum -y install wget

La opción -y que se utiliza aquí es para evitar el mensaje de confirmación antes de instalar cualquier paquete. Para obtener más ejemplos y opciones de comandos YUM, lea el artículo sobre 20 ejemplos de comandos YUM para la administración de paquetes de Linux.

1. Descarga de un solo archivo

El comando descargará un solo archivo y se almacenará en un directorio actual. También muestra el progreso de la descarga, el tamaño, la fecha y la hora durante la descarga.

# wget http://ftp.gnu.org/gnu/wget/wget-1.5.3.tar.gz

--2012-10-02 11:28:30--  http://ftp.gnu.org/gnu/wget/wget-1.5.3.tar.gz
Resolving ftp.gnu.org... 208.118.235.20, 2001:4830:134:3::b
Connecting to ftp.gnu.org|208.118.235.20|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 446966 (436K) [application/x-gzip]
Saving to: wget-1.5.3.tar.gz
100%[===================================================================================>] 446,966     60.0K/s   in 7.4s
2012-10-02 11:28:38 (58.9 KB/s) - wget-1.5.3.tar.gz

2. Descarga el archivo con un nombre diferente

Usando la opción -O (mayúsculas), descarga un archivo con un nombre de archivo diferente. Aquí le hemos dado el nombre de archivo wget.zip como se muestra a continuación.

# wget -O wget.zip http://ftp.gnu.org/gnu/wget/wget-1.5.3.tar.gz

--2012-10-02 11:55:54--  http://ftp.gnu.org/gnu/wget/wget-1.5.3.tar.gz
Resolving ftp.gnu.org... 208.118.235.20, 2001:4830:134:3::b
Connecting to ftp.gnu.org|208.118.235.20|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 446966 (436K) [application/x-gzip]
Saving to: wget.zip
100%[===================================================================================>] 446,966     60.0K/s   in 7.5s
2012-10-02 11:56:02 (58.5 KB/s) - wget.zip

3. Descargue varios archivos con protocolos http y ftp

Aquí vemos cómo descargar varios archivos usando el protocolo HTTP y FTP con el comando wget en uno.

# wget http://ftp.gnu.org/gnu/wget/wget-1.5.3.tar.gz ftp://ftp.gnu.org/gnu/wget/wget-1.10.1.tar.gz.sig

--2012-10-02 12:11:16--  http://ftp.gnu.org/gnu/wget/wget-1.5.3.tar.gz
Resolving ftp.gnu.org... 208.118.235.20, 2001:4830:134:3::b
Connecting to ftp.gnu.org|208.118.235.20|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 446966 (436K) [application/x-gzip]
Saving to: wget-1.5.3.tar.gz

100%[===================================================================================>] 446,966     56.7K/s   in 7.6s

2012-10-02 12:11:29 (57.1 KB/s) - wget-1.5.3.tar.gz

--2012-10-02 12:11:29--  ftp://ftp.gnu.org/gnu/wget/wget-1.10.1.tar.gz.sig
           => wget-1.10.1.tar.gz.sig

Logging in as anonymous ... Logged in!
==> SYST ... done.    ==> PWD ... done.
==> TYPE I ... done.  ==> CWD (1) /gnu/wget ... done.
==> SIZE wget-1.10.1.tar.gz.sig ... 65
==> PASV ... done.    ==> RETR wget-1.10.1.tar.gz.sig ... done.
Length: 65 (unauthoritative)

100%[===================================================================================>] 65          --.-K/s   in 0s

2012-10-02 12:11:33 (2.66 MB/s) - wget-1.10.1.tar.gz.sig

FINISHED --2012-10-02 12:11:33--
Downloaded: 2 files, 437K in 7.6s (57.1 KB/s)

4. Leer URL de un archivo

Puede almacenar varias URL en un archivo de texto y descargarlas con la opción -i. A continuación, hemos creado tmp.txt en el directorio wget donde colocamos una serie de URL para descargar.

# wget -i /wget/tmp.txt

--2012-10-02 12:34:12--  http://ftp.gnu.org/gnu/wget/wget-1.5.3.tar.gz ftp://ftp.gnu.org/gnu/wget/wget-1.10.1.tar.gz.sig
Resolving ftp.gnu.org... 208.118.235.20, 2001:4830:134:3::b
Connecting to ftp.gnu.org|208.118.235.20|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 446966 (436K) [application/x-gzip]
Saving to: wget-1.10.1.tar.gz.sig

100%[===================================================================================>] 446,966     35.0K/s   in 10s

2012-10-02 12:34:23 (42.7 KB/s) - wget-1.10.1.tar.gz.sig

--2012-10-02 12:34:23--  http://mirrors.hns.net.in/centos/6.3/isos/x86_64/CentOS-6.3-x86_64-LiveDVD.iso
Resolving mirrors.hns.net.in... 111.91.91.34, 2401:4800::111:91:91:34
Connecting to mirrors.hns.net.in|111.91.91.34|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1761607680 (1.6G) [application/octet-stream]
Saving to: CentOS-6.3-x86_64-LiveDVD.iso

 45%[==========================================                                          ] 1,262,000   51.6K/s  eta 8h 17m

5. Reanudar la descarga incompleta

En caso de que se descargue un archivo grande, es posible que en algún momento se detenga la descarga; en ese caso, podemos reanudar la descarga del mismo archivo donde lo dejó con la opción -c. Pero cuando comience a descargar el archivo sin especificar la opción -c, wget agregará la extensión .1 al final del archivo, considerándolo como una nueva descarga. Por lo tanto, es una buena práctica agregar el interruptor -c cuando descargue archivos grandes.

# wget -c http://mirrors.hns.net.in/centos/6.3/isos/x86_64/CentOS-6.3-x86_64-LiveDVD.iso

--2012-10-02 12:46:57--  http://mirrors.hns.net.in/centos/6.3/isos/x86_64/CentOS-6.3-x86_64-LiveDVD.iso
Resolving mirrors.hns.net.in... 111.91.91.34, 2401:4800::111:91:91:34
Connecting to mirrors.hns.net.in|111.91.91.34|:80... connected.
HTTP request sent, awaiting response... 206 Partial Content
Length: 1761607680 (1.6G), 1758132697 (1.6G) remaining [application/octet-stream]
Saving to: CentOS-6.3-x86_64-LiveDVD.iso

 51% [=================================================                                  ] 3,877,262   47.0K/s  eta 10h 27m ^

6. Descargue el archivo con .1 adjunto en el nombre del archivo

Cuando inicie la descarga sin la opción -c, agregue .1 al final del archivo y comience con una nueva descarga. Si .1 ya existe .2 adjúntelo al final del archivo.

# wget http://mirrors.hns.net.in/centos/6.3/isos/x86_64/CentOS-6.3-x86_64-LiveDVD.iso

--2012-10-02 12:50:49--  http://mirrors.hns.net.in/centos/6.3/isos/x86_64/CentOS-6.3-x86_64-LiveDVD.iso
Resolving mirrors.hns.net.in... 111.91.91.34, 2401:4800::111:91:91:34
Connecting to mirrors.hns.net.in|111.91.91.34|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1761607680 (1.6G) [application/octet-stream]
Saving to: CentOS-6.3-x86_64-LiveDVD.iso.1

 18% [==================                                                                 ] 172,436     59.2K/s   

Vea los archivos de ejemplo con la extensión .1 adjunta al final del archivo.

# ls -l CentOS*

-rw-r--r--. 1 root root 3877262 Oct  2 12:47 CentOS-6.3-x86_64-LiveDVD.iso
-rw-r--r--. 1 root root  181004 Oct  2 12:50 CentOS-6.3-x86_64-LiveDVD.iso.1

7. Descarga archivos en segundo plano

Con la opción -b puede enviar la descarga en segundo plano inmediatamente después del inicio de la descarga y los registros se escriben en el archivo /wget/log.txt.

# wget -b /wget/log.txt ftp://ftp.iinet.net.au/debian/debian-cd/6.0.5/i386/iso-dvd/debian-6.0.5-i386-DVD-1.iso

Continuing in background, pid 3550.

8. Restrinja los límites de velocidad de descarga

Con Option –limit-rate u003d 100k, el límite de velocidad de descarga está restringido a 100k y los registros se crearán en /wget/log.txt como se muestra a continuación.

# wget -c --limit-rate=100k  /wget/log.txt ftp://ftp.iinet.net.au/debian/debian-cd/6.0.5/i386/iso-dvd/debian-6.0.5-i386-DVD-1.iso

/wget/log.txt: Scheme missing.
--2012-10-02 13:16:21--  ftp://ftp.iinet.net.au/debian/debian-cd/6.0.5/i386/iso-dvd/debian-6.0.5-i386-DVD-1.iso
           => debian-6.0.5-i386-DVD-1.iso
esolving ftp.iinet.net.au... 203.0.178.32
Connecting to ftp.iinet.net.au|203.0.178.32|:21... connected.
Logging in as anonymous ... Logged in!
==> SYST ... done.    ==> PWD ... done.
==> TYPE I ... done.  ==> CWD (1) /debian/debian-cd/6.0.5/i386/iso-dvd ... done.
==> SIZE debian-6.0.5-i386-DVD-1.iso ... 4691312640
==> PASV ... done.    ==> REST 2825236 ... done.
==> RETR debian-6.0.5-i386-DVD-1.iso ... done.
Length: 4688487404 (4.4G), 4685662168 (4.4G) remaining (unauthoritative)

 0% [                                                                                    ] 3,372,160   35.5K/s  eta 28h 39m

9. Descargas FTP y HTTP restringidas con nombre de usuario y contraseña

Con Opciones –http-usuario u003d nombre de usuario, –http-contraseña u003d contraseña & –ftp-usuario u003d nombre de usuario, –ftp-contraseña u003d contraseña, puede descargar sitios HTTP o FTP con contraseña restringida como se muestra a continuación.

# wget --http-user=narad --http-password=password http://mirrors.hns.net.in/centos/6.3/isos/x86_64/CentOS-6.3-x86_64-LiveDVD.iso
# wget --ftp-user=narad --ftp-password=password ftp://ftp.iinet.net.au/debian/debian-cd/6.0.5/i386/iso-dvd/debian-6.0.5-i386-DVD-1.iso

10. Encuentra la versión de wget y ayuda

Con Opciones –version y –help puede ver la versión y la ayuda según sea necesario.

# wget --version

# wget --help

En este artículo hemos cubierto el comando wget de Linux con opciones para la tarea administrativa diaria. Hágale saber si quiere saber más al respecto. Por favor, comparta a través de nuestro cuadro de comentarios o si nos hemos perdido algo, háganoslo saber.