Y con ustedes... el comando wget

Y con ustedes... el comando wget

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 [ opciones ] url

Instalar wget

La mayoría de las distribuciones de Linux modernas 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 el mensaje de:

error –bash: wget: 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 derivadas de Arch Linux como Manjaro, y Endeavour 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 ú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, en la 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 la opción -O 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 indicador -P

$ 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

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 la opción –limit-rate 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 y dejarlo con un archivo parcialmente descargado. En lugar de reiniciar la descarga, use la opción wget -c para reanudar su descarga como se muestra a continuació.

$ 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 la opción wget -b 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 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 la opción -i 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 la opción -m 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

La bandera -k facilita la conversión del enlace a un formato adecuado para su visualización local. Mientras tanto, la opción -p 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 la opción --no-check-certificate:

$ 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 la opción -o 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 establecer el número de reintentos de descarga mediante la opciówget –tries = [no. de intentos] como se muestra:

$ wget ––tries=10 https://wordpress.org/latest.tar.gz

En el ejemplo anterior, get reintentará la descarga del archivo tarball 10 veces antes de salir.

Descarga del servidor FTP

También puede descargar un archivo de 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 los 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 ‘Usuario-Agente’ 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 example.com mientras emula la versión 80.0.1 de Mozilla Firefox, que es la última versión al momento de escribir esta guia, 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 la opción -r o ––recursive y los enlaces se convierten en enlaces locales con la opción -k o –-convert-links.

Por ejemplo:

$ 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 las páginas de manual (man wget).

Pues bien, esperamos este articulo hayade su sutilidad. Lo invitamos a que si desea recibir las novedades de nuestro blog, por favor, no dudes en suscribirte

O si lo que quieres es hacer algun comentario sobre lo aqui escrito, no dudes en hacerlo en el espacio designado para ello.


Este articulo es una traducción del ingles, del articulo Linux wget Command Explained with Examples