La herramienta de línea de comandos wget de Linux es una ingeniosa utilidad 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 de un sitio web.
Con el comando wget, puede descargar un archivo a través de protocolos HTTP, HTTPS o incluso FTP. Varias 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 se le pedirá que la instale. Sin embargo, hay algunos casos en los que la instalación puede ser necesaria, especialmente en sistemas más antiguos y algunas instancias en la nube o para resolver ‘-bash: wget: Mensaje de error de comando no encontrado.
Para los sabores 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 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 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
Para example, en el example a continuación, estamos descargando el último tarball de WordPress 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, luego de lo cual se conecta al servidor y luego inicia la transferencia de archivos. Cuando la descarga está en curso, 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.
Descargue el archivo y guárdelo 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’.
Descarga 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 utilizando el -P
bandera seguida de la ruta al directorio de destino.
$ wget -P /var/www/html https://wordpress.org/latest.tar.gz
En el example arriba, el archivo se guarda en el directorio / var / www / html.
Limitar la velocidad de descarga
Con 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 el --limit-rate
opción seguida de la velocidad de descarga. La velocidad generalmente se mide en bytes por segundo.
Para establecer la tasa límite en 500 KB / s, ejecute el siguiente comando:
$ wget –limit-rate = 500k https://wordpress.org/latest.tar.gz
Cómo seguir obteniendo un archivo parcialmente descargado
A veces, durante la descarga de un archivo, su conexión puede interrumpirse repentinamente dejándolo con un archivo parcialmente descargado. En lugar de reiniciar la descarga, use el wget -C
opción para reanudar la descarga como se muestra.
$ wget -c https://wordpress.org/latest.tar.gz
En lo de arriba example, 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 el 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 example arriba, estamos descargando el archivo ISO de plasma KDE de Manjaro en segundo plano. Para monitorear el estado de la descarga, use el comando wget log como se muestra
$ tail –f wget –log
Descarga 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 el -i
opción seguida del nombre del archivo de texto.
En esto example, 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 el -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 https://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 https://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 encontrarse con un error al descargar un archivo a través de HTTPS desde un servidor web cuyo certificado SSL no es confiable o 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 el -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 utilizando 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 configurar 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 example arriba, get reintentará la descarga del archivo tar 10 veces antes de salir.
Descarga desde el servidor FTP
También puede descargar un archivo desde un servidor FTP, incluso cuando está protegido con 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 el 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. Ocurre que en ocasiones, aparece un error que indica que no tienes permisos suficientes para acceder al servidor. Cuando esto sucede, es probable que el sitio web o el servidor web esté bloqueando el navegador que está asociado con un ‘Agente de usuario’ 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
Para example, para descargar el sitio example.com mientras emula Google Chrome versión 74 – 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" "https://example.com"
Descarga recursiva
Para descargar un sitio web para visualización local, debe activar las descargas recursivas con -r
o --recursive
opción y los enlaces se convierten en enlaces locales con -k
o --convert-links
opción.
Para example:
$ wget -rk https://example.com
Conclusión
Como ha observado, wget es una herramienta tan poderosa y flexible que puede utilizar para capturar archivos de Internet. En este tutorial, le he mostrado 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 el páginas man.