GNU/Linux >> Tutoriales Linux >  >> Linux

Comando Wget en Linux con ejemplos

Introducción

El comando Wget es una utilidad de línea de comandos de Linux que nos ayuda a descargar los archivos de la web. Podemos descargar los archivos desde servidores web utilizando los protocolos HTTP, HTTPS y FTP. Podemos usar wget en scripts y cronjobs.

Aquí, no interactivo significa que puede funcionar en segundo plano, mientras el usuario no ha iniciado sesión. Cuando hacemos la instalación mínima de las distribuciones de Linux, el comando wget no está instalado, así que para instalar wget en las distribuciones de Linux, ejecute

$ sudo yum install -y wget     for  CentOS 7 / RHEL 7
$ sudo dnf install -y wget     for CentOS 8/ RHEL 8/ Rocky Linux 8
$ sudo apt install -y wget     for Ubuntu / Debian
$ sudo pacman -S wget          for Arch Linux
$ sudo zypper install wget     for OpenSUSE

Descargar un solo archivo con wget

[unixcop@rhel-pc ~]$ wget https://releases.ubuntu.com/20.04.2.0/ubuntu-20.04.2.0-desktop-amd64.iso
--2021-08-13 04:24:05--  https://releases.ubuntu.com/20.04.2.0/ubuntu-20.04.2.0-desktop-amd64.iso
Resolving releases.ubuntu.com (releases.ubuntu.com)... 91.189.91.124, 91.189.91.123, 2001:67c:1562::28, ...
Connecting to releases.ubuntu.com (releases.ubuntu.com)|91.189.91.124|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 2877227008 (2.7G) [application/x-iso9660-image]
Saving to: ‘ubuntu-20.04.2.0-desktop-amd64.iso’

ubuntu-20.04.2.0-desktop-amd64.iso      47%[=======          ]   4.3G   2.13M/s    eta 1h 02m

Este comando descargará el archivo ISO de Ubuntu en el directorio de trabajo actual del usuario.

Reanudar el archivo parcialmente descargado

Usando la opción '-c' en el comando wget podemos reanudar nuestra descarga desde donde se desconectó.

[unixcop@rhel-pc ~]$ wget -c https://releases.ubuntu.com/20.04.2.0/ubuntu-20.04.2.0-desktop-amd64.iso

Descargar archivos en segundo plano

Use la opción '-b' en el comando wget para descargar archivos en segundo plano

[unixcop@rhel-pc ~]$ wget -b https://releases.ubuntu.com/20.04.2.0/ubuntu-20.04.2.0-desktop-amd64.iso
Continuing in background, pid 2412.
Output will be written to ‘wget-log’.
[unixcop@rhel-pc ~]$ 

También use el comando tail para ver el estado de la descarga.

[unixcop@rhel-pc ~]$ tail -f wget-log
  2700K .......... .......... .......... .......... ..........  0% 85.8K 16h41m
  2750K .......... .......... .......... .......... ..........  0% 90.0K 16h32m
  2800K .......... .......... .......... .......... ..........  0% 78.8K 16h25m
  2850K .......... .......... .......... .......... ..........  0%  189K 16h13m
  2900K .......... .......... .......... .......... ..........  0% 92.4K 16h5m
  2950K .......... .......... .......... .......... ..........  0% 89.7K 15h57m
  3000K .......... .......... .......... .......... ..........  0% 92.8K 15h50m
  3050K .......... .......... .......... .......... ..........  0%  177K 15h39m
  3100K .......... .......... .......... .......... ..........  0% 91.2K 15h32m
  3150K .......... .......... .......... .......... ..........  0% 96.0K 15h25m
  3200K .......... .......... .......... .......... ..........  0% 79.6K 15h20m
  3250K .......... .......... .......... .......... ..........  0%  199K 15h9m
  3300K .......... .......... .......... .......... ..........  0% 97.7K 15h3m
  3350K .......... .......... .......... .......... ..........  0% 94.6K 14h57m
  3400K .......... .......... .......... .......... ..........  0% 95.8K 14h51m
  3450K .......... .......... .......... .......... ..........  0% 96.0K 14h45m
  3500K .......... .......... .......... .......... ..........  0%  102K 14h39m
  3550K .......... .......... .......... .......... ..........  0%  153K 14h31m
  3600K .......... .......... .......... .......... ..........  0% 62.1K 14h29m
  3650K .......... .......... .......... .......... ..........  0%  109K 14h23m
  3700K .......... .......... .......... .......... ..........  0% 83.1K 14h19m
  3750K .......... .......... .......... .......... ..........  0%  118K 14h13m
  3800K .......... .......... .......... .......... ..........  0%  104K 14h8m
  3850K .......... .......... .......... .......... ..........  0%  112K 14h2m





etc..

Limita la velocidad de descarga mientras descargas los archivos

Puede limitar la velocidad de descarga usando la opción '–limit-rate'.

[unixcop@rhel-pc ~]$ wget --limit-rate=350k https://releases.ubuntu.com/20.04.2.0/ubuntu-20.04.2.0-desktop-amd64.iso

hemos establecido el límite de descarga en 350K.

Descargar varios archivos

Primero cree un archivo de texto y agregue todas las URL en ese archivo de texto como se muestra a continuación:

[unixcop@rhel-pc ~]$ cat wget-download-list.txt 
http://centos.mirror.server24.net/8.4.2105/isos/x86_64/CentOS-8.4.2105-x86_64-dvd1.iso
https://releases.ubuntu.com/20.04.2.0/ubuntu-20.04.2.0-desktop-amd64.iso
https://download.rockylinux.org/pub/rocky/8/isos/x86_64/Rocky-8.4-x86_64-minimal.iso

[unixcop@rhel-pc ~]$ 

Ahora ejecuta:

[unixcop@rhel-pc ~]$ wget -i wget-download-list.txt 
--2021-08-13 04:36:46--  http://centos.mirror.server24.net/8.4.2105/isos/x86_64/CentOS-8.4.2105-x86_64-dvd1.iso
Resolving centos.mirror.server24.net (centos.mirror.server24.net)... 217.70.144.100, 2001:1a38:144::100
Connecting to centos.mirror.server24.net (centos.mirror.server24.net)|217.70.144.100|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 9928966144 (9.2G) [application/octet-stream]
Saving to: ‘CentOS-8.4.2105-x86_64-dvd1.iso’

CentOS-8.4.2105-x86_64-dvd1.iso         4%[==                 ] 964M  1.9M/s    eta 3h 44m
[unixcop@rhel-pc ~]$ 

Aumentar los intentos de reintento en wget

Podemos aumentar los reintentos usando la opción '–tries' en wget. De forma predeterminada, el comando wget vuelve a intentarlo 20 veces para que la descarga sea exitosa.

# wget --tries=60 http://centos.mirror.server24.net/8.4.2105/isos/x86_64/CentOS-8.4.2105-x86_64-dvd1.iso

El comando anterior hará que el comando wget intente descargar el archivo un máximo de 60 veces.

Redirigir la salida del comando wget a un archivo

Podemos redirigir la salida a un archivo de registro usando la opción '-o' como se muestra a continuación:

$ wget -o download_file.log http://centos.mirror.server24.net/8.4.2105/isos/x86_64/CentOS-8.4.2105-x86_64-dvd1.iso

Puedes mostrarlo con

# ls
# cat download_file.log

Duplica un sitio web completo con el comando wget

Podemos hacer eso con:

# wget --mirror -p --convert-links -P ./<Local-Folder> website-URL

donde

  • –espejo :active las opciones adecuadas para duplicar.
  • p :descarga todos los archivos para mostrar correctamente una página HTML determinada.
  • –convertir-enlaces :convierte los enlaces en el documento para verlos localmente.
  • -P./Carpeta-local :guarda todos los archivos y directorios en el directorio especificado.

Rechazar tipos de archivos durante la descarga

Cuando planea descargar el sitio web completo, podemos forzar el comando wget para que no descargue archivos pdf, por ejemplo, usando la opción '–rechazar'.

# wget --reject=pdf <Website-To-Be-Downloaded>

Establecer la cuota de descarga

Wget puede dejar de descargar cuando el tamaño de la descarga supera cierto tamaño. Use la opción '-Q' en el comando wget para establecer la cuota de descarga.

# wget -Q14m -i wget-download-list.txt

Permitir que wget sobrescriba los archivos

Si especificamos el archivo de salida usando la opción -o, sobrescribirá cualquier archivo existente.

wget -q http://www.example.com/filename.txt -O /path/filename.txt

Descargar un archivo usando un servidor FTP

​Wget usa el FTP anónimo para descargar los archivos de la web. No requiere inicios de sesión de FTP para descargar los archivos.

# wget ftp://ftp.example.com/file.tar.gz

Descargando archivo desde un sitio protegido con contraseña

# wget --ftp-user=<user-name> --ftp-password=<password> Download-URL
OR
# wget --user <user_name> --password <password> http://<url-path>/file_you_want_to_download

Otra forma de especificar el nombre de usuario y la contraseña es en la propia URL.

Descargar un archivo desde una URL segura que no es de confianza

¿Quiere descargar un archivo desde los puertos https y quiere omitir las comprobaciones de certificados?

por lo que se puede lograr usando la opción “–no-check-certificate”

# wget https://example.com/file.tar.gz –no-check-certificate

Ejemplo :Descargar Oracle Java desde el portal https y omitir las comprobaciones de certificados

# wget --header "Cookie: oraclelicense=accept-securebackup-cookie" https://download.oracle.com/otn-pub/java/jdk/12.0.1+12/69cfe15208a647278a19ef0990eea691/jdk-12.0.1_linux-x64_bin.rpm --no-check-certificate

Descarga de archivos mediante proxy

Primero necesitamos configurar el proxy y luego podemos descargar el archivo de Internet. Para configurar el proxy en la línea de comando, use las siguientes variables y el comando de exportación

# export http_proxy=http://<Your-Proxy-IP>:<Proxy-Port>
# export https_proxy=http://<Your-Proxy-IP>:<Proxy-Port>
# export ftp_proxy=http://<Your-Proxy-IP>:<Proxy-Port>

En caso de que se requiera el nombre de usuario y la contraseña para el proxy, utilice:

# export http_proxy=http://<user-name>:<password>@<Your-Proxy-IP>:<Proxy-Port>
# export https_proxy=http://<user-name>:<password>@<Your-Proxy-IP>:<Proxy-Port>
# export ftp_proxy=http://<user-name>:<password>@<Your-Proxy-IP>:<Proxy-Port>

Comprobar la versión de wget

Podemos verificar la versión del comando Wget como se muestra a continuación

# wget –version

Conclusión

Wget tiene una gran cantidad de opciones, cubrimos muchas de ellas.

Por cierto, podemos encontrar más opciones en la página del manual.

# man wget


Linux
  1. Comando wc Linux con ejemplos

  2. 12 ejemplos útiles de comandos Wget en Linux

  3. Comando Linux Tee con ejemplos

  4. Comando JQ en Linux con ejemplos

  5. Ejemplos de comandos wget en Linux

Comando Tr en Linux con ejemplos

15 comandos ps de Linux con ejemplos

Comando de CD de Linux con ejemplos

Comando wget de Linux explicado con ejemplos

Comando IP de Linux con ejemplos

Comando wget de Linux con ejemplos