La herramienta de línea de comandos wget de Linux es una utilidad ingeniosa que se utiliza para descargar archivos a través de Internet. Por lo general, se usa cuando desea descargar archivos tarball y comprimidos, paquetes deb y rpm desde un sitio web.
Con el comando wget, puede descargar un archivo a través de protocolos HTTP, HTTPS o incluso FTP. Una serie de opciones que puede usar junto con el comando wget que lo hacen poderoso.
En este tutorial, veremos cómo usar el comando wget de GNU a través de ejemplos.
sintaxis de wget
La sintaxis para usar wget es bastante sencilla. Simplemente invoque el comando wget, seguido de las opciones y luego el enlace del sitio web como se muestra.
$ wget [ options ] url
Instalar wget
La mayoría de las distribuciones modernas de Linux se envían con la utilidad wget, por lo que no será necesario que la instale. Sin embargo, hay algunos casos en los que puede ser necesaria la instalación, especialmente en sistemas más antiguos y algunas instancias en la nube o para resolver el mensaje de error '–bash:wget:Command not found'.
Para versiones de Ubuntu y Debian, ejecute el siguiente comando usando el administrador de paquetes APT:
$ sudo apt-get install wget
Para instalar el comando wget en versiones RHEL/CentOS 8, ejecute:
$ sudo dnf install wget
Para versiones anteriores (RHEL 7 y CentOS 7 y anteriores) use el administrador de paquetes yum de la siguiente manera
$ sudo yum install wget
Para las distribuciones de Arch Linux y Arch Linux, como Manjaro, Arch Linux y Endeavor OS, use el administrador de paquetes pacman de la siguiente manera:
$ sudo pacman -S wget
Descargar un archivo de Internet
En su forma más básica, sin usar ninguna opción, el comando wget descarga un archivo de Internet como se especifica en la URL. La sintaxis más simple se muestra a continuación:
$ wget website_url
Por ejemplo, en el siguiente ejemplo, estamos descargando el tarball de WordPress más reciente del sitio oficial de WordPress.
$ wget https://wordpress.org/latest.tar.gz
A partir de la salida, podemos ver que wget primero resuelve el dominio del sitio web en una dirección IP, sobre la cual se conecta al servidor y luego inicia la transferencia de archivos. Cuando la descarga está en progreso, puede ver la barra de progreso que indica el nombre del archivo, el tamaño, la velocidad de descarga junto con el tiempo estimado de finalización de la descarga.
Una vez completada la descarga, asegúrese de encontrar el archivo en su directorio de trabajo actual. Esto se puede verificar invocando el comando ls.
Descargar archivo y guardar con un nombre específico
Si prefiere guardar el archivo con un nombre diferente al nombre original, simplemente pase el -O
opción seguida de su nombre preferido.
$ wget -O wordpress.tar.gz https://wordpress.org/latest.tar.gz
El comando anterior descarga el archivo original 'latest.tar.gz' del sitio de WordPress y lo guarda como 'wordpress.tar.gz'.
Descargar a un directorio específico
Como se discutió anteriormente, wget descarga el archivo a su directorio de trabajo actual. Puede especificar una ubicación de descarga diferente usando -P
seguido de la ruta al directorio de destino.
$ wget -P /var/www/html https://wordpress.org/latest.tar.gz
En el ejemplo anterior, el archivo se guarda en el directorio /var/www/html.
Limitar la velocidad de descarga
Usando wget, también puede limitar la velocidad a la que se descargan los archivos. Para poner un límite a la velocidad de descarga, invoque --limit-rate
opción seguida de la velocidad de descarga. La velocidad se suele medir en bytes por segundo.
Para establecer la velocidad límite en 500 KB/s, ejecute el siguiente comando:
$ wget --limit-rate=500k https://wordpress.org/latest.tar.gz
Cómo continuar recibiendo un archivo parcialmente descargado
A veces, durante la descarga de un archivo, su conexión puede caer repentinamente dejándolo con un archivo parcialmente descargado. En lugar de reiniciar la descarga, use wget -C
opción para reanudar la descarga como se muestra.
$ wget -c https://wordpress.org/latest.tar.gz
En el ejemplo anterior, estamos reanudando la descarga del archivo tarball de WordPress. Tenga en cuenta que si el sitio web no responde a la reanudación de la descarga del archivo, el comando reiniciará la descarga del archivo y sobrescribirá el existente.
Descargar archivo en segundo plano
Para descargar un archivo en segundo plano, pase wget -b
opción como se muestra a continuación.
$ wget -b https://osdn.net/projects/manjaro/storage/kde/20.0.3/manjaro-kde-20.0.3-200606-linux56.iso
En el ejemplo anterior, estamos descargando el archivo ISO Manjaro KDE Plasma en segundo plano. Para monitorear el estado de la descarga, use el comando wget log como se muestra
$ tail –f wget –log
Descargar varios archivos
Si tiene varios archivos para descargar, es engorroso ejecutar el comando wget repetidamente en la terminal. Un mejor enfoque sería ejecutar el comando wget una vez para descargar los archivos uno tras otro.
Para lograr esto, guarde las URL del sitio web en un archivo de texto. A partir de entonces, invoque el comando wget con -i
opción seguida del nombre del archivo de texto.
En este ejemplo, queremos descargar el archivo tarball de WordPress y el archivo comprimido OwnCloud. Primero, hemos guardado los enlaces de descarga en un archivo de muestra, llamémoslo 'downloads.txt':
https://wordpress.org/latest.tar.gz
https://download.owncloud.org/community/owncloud-complete-20200731.zip
Ahora, para descargar varios archivos, ejecute:
$ wget -i downloads.txt
Estos se descargarán uno tras otro. Y así es como descargas varios archivos.
Descargar un espejo de un sitio web
Otro uso poco conocido de wget es la capacidad de clonar o hacer una copia espejo de un sitio web. Puede lograr esto pasando -m
opción como se muestra. Esto crea una copia espejo del sitio web junto con todos los enlaces internos y otros recursos como imágenes, widgets, Javascript y archivos CSS.
$ wget -m http://www.example.com
Si tiene la intención de clonar un sitio web para la navegación local, pase argumentos adicionales como se muestra.
$ wget -m -k -p http://www.example.com
El -k
flag facilita la conversión del enlace a un formato adecuado para su visualización local. Mientras tanto, el -p
La opción indica a la utilidad wget que descargue los archivos relevantes necesarios para mostrar contenido en una página HTML en un navegador.
Ignorar certificado SSL
Para evitar que se produzca un error al descargar un archivo a través de HTTPS desde un servidor web cuyo certificado SSL no es de confianza o no es válido, pase el --no-check-certificate
opción:
$ wget --no-check-certificate https://domain-with-untrusted-ssl-cert
Descargar y redirigir la salida al archivo de registro
La salida del comando wget se puede registrar durante la descarga del archivo usando -o
opción como se muestra:
$ wget -o download.log https://wordpress.org/latest.tar.gz
A partir de entonces, puede ver el archivo de registro en tiempo real a medida que avanza la descarga usando el comando tail como se muestra:
$ tail -f download.log
Limitar reintentos de descarga
A veces, puede experimentar velocidades de ancho de banda lentas que pueden impedirle descargar un archivo. Puede establecer el número de reintentos de descarga usando wget --tries=[no. of tries]
opción como se muestra:
$ wget --tries=10 https://wordpress.org/latest.tar.gz
En el ejemplo anterior, get volverá a intentar la descarga del archivo tarball 10 veces antes de salir.
Descargar desde servidor FTP
También puede descargar un archivo desde un servidor FTP, incluso cuando está protegido por contraseña. Todo lo que necesita hacer es pasar el nombre de usuario y la contraseña de ftp en el comando wget como se muestra:
$ wget --ftp-user=[ftp_user] --ftp-password=[ftp_password] ftp://ftp.ftp-site.com
Cambiar agente de usuario de wget
Un agente de usuario es esencialmente un campo de encabezado que un navegador envía a un servidor web. Si está descargando una página web, wget emulará un navegador web. Sucede que, en ocasiones, obtiene un error que indica que no tiene suficientes permisos para acceder al servidor. Cuando esto sucede, es probable que el sitio web o el servidor web esté bloqueando el navegador asociado con un 'User-Agent' en particular. Aquí hay una base de datos de los agentes de usuario que puede encontrar.
Para cambiar el agente de usuario, use la sintaxis:
$ wget -U "user agent" URL
Por ejemplo, para descargar el sitio ejemplo.com mientras emula la versión 74 de Google Chrome, que es la última versión, use:
$ wget -U "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36" "http://example.com"
Descarga recursiva
Para descargar un sitio web para visualización local, debe activar las descargas recursivas con -r
o --recursive
y los enlaces se convierten en enlaces locales con -k
o --convert-links
opción.
Por ejemplo:
$ wget -rk https://example.com
Conclusión
Como ha observado, wget es una herramienta tan poderosa y flexible que puede usar para obtener archivos de Internet. En este tutorial, le mostré varias formas en que puede usar wget y cómo puede descargar archivos y páginas web desde servidores web a través de http, https y ftp. Para obtener más información sobre el uso del comando wget, visite las páginas man.