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 OpenSUSEDescargar 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 02mEste 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.isoDescargar 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.isohemos 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.isoEl 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.isoPuedes mostrarlo con
# ls
# cat download_file.logDuplica un sitio web completo con el comando wget
Podemos hacer eso con:
# wget --mirror -p --convert-links -P ./<Local-Folder> website-URLdonde
- –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.txtPermitir 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.txtDescargar 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.gzDescargando 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_downloadOtra 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-certificateEjemplo :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-certificateDescarga 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 –versionConclusió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