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