Búsqueda de sitios web

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


En este artículo, revisaremos la utilidad wget que recupera archivos de la World Wide Web (WWW) utilizando protocolos ampliamente utilizados como HTTP. , HTTPS, FTP y FTPS.

Wget es una utilidad de línea de comandos y un descargador de archivos de red gratuito que incluye muchas funciones que facilitan la descarga de archivos, entre las que se incluyen:

  • Descargue archivos grandes o refleje sitios web o FTP completos.
  • Descargue varios archivos a la vez.
  • Establezca el ancho de banda y el límite de velocidad para las descargas.
  • Descargar archivos a través de servidores proxy.
  • Puede reanudar descargas canceladas.
  • Reflejar directorios recursivamente.
  • Se ejecuta en la mayoría de los sistemas operativos tipo UNIX, así como en Windows.
  • Operación desatendida/en segundo plano.
  • Soporte para conexiones HTTP persistentes.
  • Soporte para SSL/TLS para descargas cifradas utilizando la biblioteca OpenSSL o GnuTLS.
  • Soporte para descargas de IPv4 e IPv6.

Sintaxis del comando Wget

La sintaxis básica de Wget es:

wget [option] [URL]

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

rpm -q wget         [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux]
dpkg -l | grep wget [On Debian, Ubuntu and Mint]

Instalar Wget en Linux

Si Wget no está instalado, puede instalarlo usando el administrador de paquetes predeterminado de su sistema Linux como se muestra.

sudo apt install wget -y      [On Debian, Ubuntu and Mint]
sudo yum install wget -y      [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux]
sudo emerge -a net-misc/wget  [On Gentoo Linux]
sudo pacman -Sy wget           [On Arch Linux]
sudo zypper install wget      [On OpenSUSE]    

La opción -y utilizada aquí es para evitar mensajes de confirmación antes de instalar cualquier paquete. Para obtener más ejemplos y opciones de los comandos YUM y APT, lea nuestros artículos sobre:

  • 20 comandos YUM de Linux para la gestión de paquetes
  • 15 ejemplos de comandos APT en Ubuntu/Debian y Mint
  • 45 ejemplos de comandos Zypper para administrar OpenSUSE Linux

1. Descargar un archivo con Wget

El comando descargará un único archivo y lo 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/wget2-2.0.0.tar.gz

--2021-12-10 04:15:16--  http://ftp.gnu.org/gnu/wget/wget2-2.0.0.tar.gz
Resolving ftp.gnu.org (ftp.gnu.org)... 209.51.188.20, 2001:470:142:3::b
Connecting to ftp.gnu.org (ftp.gnu.org)|209.51.188.20|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 3565643 (3.4M) [application/x-gzip]
Saving to: ‘wget2-2.0.0.tar.gz’

wget2-2.0.0.tar.gz      100%[==========>]   3.40M  2.31MB/s    in 1.5s    

2021-12-10 04:15:18 (2.31 MB/s) - ‘wget2-2.0.0.tar.gz’ saved [3565643/3565643]

2. Descargar archivo Wget con un nombre diferente

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

wget -O wget.zip http://ftp.gnu.org/gnu/wget/wget2-2.0.0.tar.gz

--2021-12-10 04:20:19--  http://ftp.gnu.org/gnu/wget/wget-1.5.3.tar.gz
Resolving ftp.gnu.org (ftp.gnu.org)... 209.51.188.20, 2001:470:142:3::b
Connecting to ftp.gnu.org (ftp.gnu.org)|209.51.188.20|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 446966 (436K) [application/x-gzip]
Saving to: ‘wget.zip’

wget.zip      100%[===================>] 436.49K   510KB/s    in 0.9s    

2021-12-10 04:20:21 (510 KB/s) - ‘wget.zip’ saved [446966/446966]

3. Wget descarga varios archivos con protocolo HTTP y FTP

Aquí vemos cómo descargar varios archivos usando el protocolo HTTP y FTP con el comando wget simultáneamente.

wget http://ftp.gnu.org/gnu/wget/wget2-2.0.0.tar.gz ftp://ftp.gnu.org/gnu/wget/wget2-2.0.0.tar.gz.sig

--2021-12-10 06:45:17--  http://ftp.gnu.org/gnu/wget/wget2-2.0.0.tar.gz
Resolving ftp.gnu.org (ftp.gnu.org)... 209.51.188.20, 2001:470:142:3::b
Connecting to ftp.gnu.org (ftp.gnu.org)|209.51.188.20|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 3565643 (3.4M) [application/x-gzip]
Saving to: ‘wget2-2.0.0.tar.gz’

wget2-2.0.0.tar.gz      100%[==========>]   4.40M  4.31MB/s    in 1.1s    

2021-12-10 06:46:10 (2.31 MB/s) - ‘wget2-2.0.0.tar.gz’ saved [3565643/3565643]

4. Wget descarga varios archivos desde un archivo

Para descargar varios archivos a la vez, use la opción -i con la ubicación del archivo que contiene la lista de URL que se descargarán. Cada URL debe agregarse en una línea separada como se muestra.

Por ejemplo, el siguiente archivo 'download-linux.txt' contiene la lista de URL que se descargarán.

cat download-linux.txt 

https://releases.ubuntu.com/20.04.3/ubuntu-20.04.3-desktop-amd64.iso
https://download.rockylinux.org/pub/rocky/8/isos/x86_64/Rocky-8.5-x86_64-dvd1.iso
https://cdimage.debian.org/debian-cd/current/amd64/iso-dvd/debian-11.2.0-amd64-DVD-1.iso
wget -i download-linux.txt

--2021-12-10 04:52:40--  https://releases.ubuntu.com/20.04.3/ubuntu-20.04.3-desktop-amd64.iso
Resolving releases.ubuntu.com (releases.ubuntu.com)... 91.189.88.248, 91.189.88.247, 91.189.91.124, ...
Connecting to releases.ubuntu.com (releases.ubuntu.com)|91.189.88.248|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 3071934464 (2.9G) [application/x-iso9660-image]
Saving to: ‘ubuntu-20.04.3-desktop-amd64.iso’

ubuntu-20.04.3-desktop-amd64   4%[=>      ] 137.71M  11.2MB/s    eta 3m 30s
...

Si su lista de URL tiene un patrón de numeración particular, puede agregar llaves para recuperar todas las URL que coincidan con el patrón. Por ejemplo, si desea descargar una serie de kernels de Linux a partir de la versión 5.1.1 a 5.1.15, puede hacer lo siguiente.

wget https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/linux-5.1.{1..15}.tar.gz

--2021-12-10 05:46:59--  https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/linux-5.1.1.tar.gz
Resolving mirrors.edge.kernel.org (mirrors.edge.kernel.org)... 147.75.95.133, 2604:1380:3000:1500::1
Connecting to mirrors.edge.kernel.org (mirrors.edge.kernel.org)|147.75.95.133|:443... connected.
WARNING: The certificate of ‘mirrors.edge.kernel.org’ is not trusted.
WARNING: The certificate of ‘mirrors.edge.kernel.org’ is not yet activated.
The certificate has not yet been activated
HTTP request sent, awaiting response... 200 OK
Length: 164113671 (157M) [application/x-gzip]
Saving to: ‘linux-5.1.1.tar.gz’

linux-5.1.1.tar.gz      100%[===========>] 156.51M  2.59MB/s    in 61s     

2021-12-10 05:48:01 (2.57 MB/s) - ‘linux-5.1.1.tar.gz’ saved [164113671/164113671]

--2021-12-10 05:48:01--  https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/linux-5.1.2.tar.gz
Reusing existing connection to mirrors.edge.kernel.org:443.
HTTP request sent, awaiting response... 200 OK
Length: 164110470 (157M) [application/x-gzip]
Saving to: ‘linux-5.1.2.tar.gz’

linux-5.1.2.tar.gz     19%[===========]  30.57M  2.58MB/s    eta 50s

5. Wget Reanudar descarga incompleta

En caso de descarga de un archivo grande, a veces puede suceder que se detenga la descarga; en ese caso, podemos reanudar la descarga del mismo archivo donde se quedó con la opción -c.

Pero cuando comienzas a descargar archivos sin especificar -c, una opción wget agregará la extensión .1 al final del archivo, considerado como nuevo. descargar. Por lo tanto, es una buena práctica agregar el modificador -c cuando descargas archivos grandes.

# wget -c https://releases.ubuntu.com/20.04.3/ubuntu-20.04.3-desktop-amd64.iso

--2021-12-10 05:27:59--  https://releases.ubuntu.com/20.04.3/ubuntu-20.04.3-desktop-amd64.iso
Resolving releases.ubuntu.com (releases.ubuntu.com)... 91.189.88.247, 91.189.91.123, 91.189.91.124, ...
Connecting to releases.ubuntu.com (releases.ubuntu.com)|91.189.88.247|:443... connected.
HTTP request sent, awaiting response... 206 Partial Content
Length: 3071934464 (2.9G), 2922987520 (2.7G) remaining [application/x-iso9660-image]
Saving to: ‘ubuntu-20.04.3-desktop-amd64.iso’

ubuntu-20.04.3-desktop-amd64.iso        5%[++++++> ]   167.93M  11.1MB/s               
^C
[root@tecmint ~]# wget -c https://releases.ubuntu.com/20.04.3/ubuntu-20.04.3-desktop-amd64.iso
--2021-12-10 05:28:03--  https://releases.ubuntu.com/20.04.3/ubuntu-20.04.3-desktop-amd64.iso
Resolving releases.ubuntu.com (releases.ubuntu.com)... 91.189.88.248, 91.189.91.124, 91.189.91.123, ...
Connecting to releases.ubuntu.com (releases.ubuntu.com)|91.189.88.248|:443... connected.
HTTP request sent, awaiting response... 206 Partial Content
Length: 3071934464 (2.9G), 2894266368 (2.7G) remaining [application/x-iso9660-image]
Saving to: ‘ubuntu-20.04.3-desktop-amd64.iso’

ubuntu-20.04.3-desktop-amd64.iso        10%[+++++++=====> ] 296.32M  17.2MB/s    eta 2m 49s ^

6. Sitio web completo de Wget Mirror

Para descargar, reflejar o copiar un sitio web completo para verlo sin conexión, puede utilizar el siguiente comando que hará una copia local del sitio web junto con todos los recursos (JavaScript, CSS, imágenes).

wget --recursive --page-requisites --adjust-extension --span-hosts --convert-links --restrict-file-names=windows --domains yoursite.com --no-parent yoursite.com

Explicación del comando anterior.

wget \
     --recursive \ # Download the whole site.
     --page-requisites \ # Get all assets/elements (CSS/JS/images).
     --adjust-extension \ # Save files with .html on the end.
     --span-hosts \ # Include necessary assets from offsite as well.
     --convert-links \ # Update links to still work in the static version.
     --restrict-file-names=windows \ # Modify filenames to work in Windows as well.
     --domains yoursite.com \ # Do not follow links outside this domain.
     --no-parent \ # Don't follow links outside the directory you pass in.
         yoursite.com/whatever/path # The URL to download

7. Wget Descargar archivos en segundo plano

Con la opción -b puede enviar una descarga en segundo plano inmediatamente después de que comience la descarga y los registros se escriban en el archivo wget.log.

wget -b wget.log https://releases.ubuntu.com/20.04.3/ubuntu-20.04.3-desktop-amd64.iso

Continuing in background, pid 8999.
Output will be written to ‘wget.log’.

8. Wget establece límites de velocidad de descarga de archivos

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

wget -c --limit-rate=100k -b wget.log https://releases.ubuntu.com/20.04.3/ubuntu-20.04.3-desktop-amd64.iso

Continuing in background, pid 9108.
Output will be written to ‘wget-log’.

Vea el archivo wget.log y verifique la velocidad de descarga del wget.

tail -f wget-log 

 5600K .......... .......... .......... .......... ..........  0%  104K 8h19m
 5650K .......... .......... .......... .......... ..........  0%  103K 8h19m
 5700K .......... .......... .......... .......... ..........  0%  105K 8h19m
 5750K .......... .......... .......... .......... ..........  0%  104K 8h18m
 5800K .......... .......... .......... .......... ..........  0%  104K 8h18m
 5850K .......... .......... .......... .......... ..........  0%  105K 8h18m
 5900K .......... .......... .......... .......... ..........  0%  103K 8h18m
 5950K .......... .......... .......... .......... ..........  0%  105K 8h18m
 6000K .......... .......... .......... .......... ..........  0% 69.0K 8h20m
 6050K .......... .......... .......... .......... ..........  0%  106K 8h19m
 6100K .......... .......... .......... .......... ..........  0% 98.5K 8h20m
 6150K .......... .......... .......... .......... ..........  0%  110K 8h19m
 6200K .......... .......... .......... .......... ..........  0%  104K 8h19m
 6250K .......... .......... .......... .......... ..........  0%  104K 8h19m
...

9. Wget descarga archivos protegidos con contraseña a través de FTP y HTTP

Para descargar un archivo desde un servidor FTP protegido con contraseña, puede utilizar las opciones --ftp-user=username y --ftp-password=password como se muestra.

wget --ftp-user=narad --ftp-password=password ftp://ftp.example.com/filename.tar.gz

Para descargar un archivo desde un servidor HTTP protegido con contraseña, puede utilizar las opciones --http-user=username y --http-password=password como se muestra.

wget --http-user=narad --http-password=password http://http.example.com/filename.tar.gz

10. Wget ignora la verificación del certificado SSL

Para ignorar la verificación del certificado SSL mientras descarga archivos a través de HTTPS, puede usar la opción --no-check-certificate:

wget --no-check-certificate https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/linux-5.1.1.tar.gz

--2021-12-10 06:21:21--  https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/linux-5.1.1.tar.gz
Resolving mirrors.edge.kernel.org (mirrors.edge.kernel.org)... 147.75.95.133, 2604:1380:3000:1500::1
Connecting to mirrors.edge.kernel.org (mirrors.edge.kernel.org)|147.75.95.133|:443... connected.
WARNING: The certificate of ‘mirrors.edge.kernel.org’ is not trusted.
WARNING: The certificate of ‘mirrors.edge.kernel.org’ is not yet activated.
The certificate has not yet been activated
HTTP request sent, awaiting response... 200 OK
Length: 164113671 (157M) [application/x-gzip]
Saving to: ‘linux-5.1.1.tar.gz’
...

11. Versión y ayuda de Wget

Con las 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 los comandos wget de Linux con opciones para las tareas administrativas diarias. ¿man wget si quieres saber más al respecto? Comparta amablemente a través de nuestro cuadro de comentarios o, si nos hemos perdido algo, háganoslo saber.