Wget: La herramienta esencial para descargar archivos en Linux

Introducción a Wget

Wget es una de las herramientas más versátiles y confiables que cualquier usuario de Linux puede tener en su arsenal. Diseñada para funcionar desde la línea de comandos, permite descargar archivos mediante los protocolos HTTP, HTTPS y FTP con una sintaxis sencilla pero poderosa. Su nombre proviene de “World Wide Web get”, y desde su aparición a finales de los años 90 se ha convertido en un estándar para administradores de sistemas, desarrolladores y usuarios avanzados que necesitan automatizar la obtención de recursos de red.

Instalación y verificación

En la mayoría de distribuciones Linux, Wget viene preinstalado, pero si falta, su instalación es trivial. En Debian/Ubuntu: sudo apt update && sudo apt install wget. En Red Hat, CentOS o Fedora: sudo dnf install wget (o yum en versiones antiguas). Tras instalar, verifica la versión con wget –version, que muestra el número de release y las características compiladas, como soporte para SSL o IPv6.

Sintaxis básica

La sintaxis fundamental es wget [opciones] URL. La URL indica el recurso a obtener (archivo, directorio FTP o página web). Las opciones modifican el comportamiento: directorio de destino, número de reintentos, límite de velocidad, autenticación, etc. Por ejemplo, wget -O informe.pdf https://ejemplo.com/informe.pdf descarga y guarda el archivo con el nombre especificado.

Opciones más usadas

A continuación se listan las opciones que más se emplean en el día a día.

  • -O archivo: define el nombre del archivo de salida.
  • -c: continúa una descarga interrumpida, reutilizando lo ya descargado.
  • -r: activa el modo recursivo para descargar directorios completos o sitios web.
  • -l profundidad: limita el nivel de recursión (por defecto 5).
  • -np: no asciende al directorio padre al descargar recursivamente.
  • -q: modo silencioso, suprime la salida informativa.
  • –limit-rate=velocidad: limita el ancho de banda (ej. 200k).
  • –user-agent=cadena: finge ser otro navegador o herramienta.

Ejemplos prácticos

Estos comandos ilustran cómo combinar opciones en situaciones reales.

  • Descargar y renombrar: wget -O kernel.tar.xz https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.15.tar.xz
  • Espejo de documentación para uso offline: wget -r -l 2 -k -p https://ejemplo.com/docs/
  • Reanudar una ISO grande: wget -c https://releases.ubuntu.com/22.04/ubuntu-22.04-desktop-amd64.iso
  • Limitar ancho de banda a 300 KB/s: wget –limit-rate=300k https://velocidad.test/archivo.zip
  • FTP con autenticación: wget –ftp-user=respaldos –ftp-password=Secreto123 ftp://servidor.com/respaldo.tar.gz

Descarga de sitios web completos (modo espejo)

Para crear una copia local navegable de un sitio, usa la opción -m (equivalente a -r -N -l inf –no-remove-listing). Combínala con -k para convertir enlaces a rutas locales y -p para descargar todos los recursos necesarios (imágenes, CSS, JavaScript). Ejemplo: wget -m -k -p https://ejemplo.com/tutorial/ dejará los archivos listos para abrir index.html en tu navegador sin conexión.

Automatización, scripts y buenas prácticas

Wget se integra fácilmente en scripts de shell y tareas cron. Un ejemplo sencillo de respaldo con registro de log:


#!/bin/bash
LOG=/var/log/wget_backup.log
wget -c -o $LOG https://respaldos.example.com/copia.tar.gz
if [ $? -eq 0 ]; then
    echo "Descarga completada a $(date)" >> $LOG
else
    echo "Error en la descarga" | mail -s "Falló Wget" admin@example.com
fi

En cuanto a seguridad, siempre verifica checksums o firmas GPG de los archivos descargados. Evita usar –no-check-certificate salvo que sea indispensable, ya que desactiva la validación SSL. Limita el ancho de banda con –limit-rate si la red es compartida y ejecuta Wget bajo un usuario con privilegios reducidos.

Conclusión

Wget sigue siendo, después de más de dos décadas, una de las herramientas más fiables y flexibles para la descarga de archivos en Linux. Su combinación de simplicidad, potencia y capacidad de automatización la hace indispensable tanto para usuarios ocasionales como para profesionales que gestionan servidores o desarrollan flujos de trabajo complejos. Dominar sus opciones básicas y avanzadas te permitirá ahorrar tiempo, reducir el desperdicio de ancho de banda y garantizar que tus descargas sean resumibles y seguras. Además, su presencia en prácticamente todas las distribuciones lo convierte en una herramienta siempre disponible, sin necesidad de dependencias externas.

Uso avanzado: proxies, cookies y autenticación

Wget también permite trabajar detrás de proxies, gestionar cookies y autenticarse en sitios que requieren inicio de sesión. Estas capacidades lo hacen útil para descargar contenido de intranets, APIs protegidas o repositorios privados.

  • –proxy=host:puerto: define el servidor proxy a usar.
  • –proxy-user=usuario –proxy-password=clave: autenticación en el proxy.
  • –load-cookies archivo: carga cookies previamente guardadas.
  • –save-cookies archivo: guarda cookies recibidas durante la sesión.
  • –http-user=usuario –http-password=clave: autenticación básica en servidores HTTP/HTTPS.
  • –auth-no-challenge: envía credenciales sin esperar el desafío del servidor (útil en algunos casos).

Depuración y registro de salida

Para solucionar problemas, Wget ofrece opciones de depuración que muestran detalladamente lo que ocurre durante la conexión. El registro de salida puede redirigirse a un archivo para su posterior análisis, lo que facilita identificar errores de certificado, redirecciones o tiempos de espera.

  • -d: activa el modo depuración, imprimiendo información del handshake y cabeceras.
  • -o archivo: redirige todos los mensajes de salida al archivo especificado.
  • –debug: equivalente a -d, disponible en versiones más recientes.
  • –no-verbose: suprime la salida informativa pero mantiene los errores.

Limitaciones y alternativas

Aunque Wget es extremadamente capaz, tiene algunas limitaciones: no interpreta JavaScript, por lo que no puede descargar contenido generado dinámicamente mediante scripts de cliente. Para esos casos, herramientas como curl con capacidades de scripting o navegadores headless (Puppeteer, Playwright) son más adecuadas. Además, Wget no admite descargas paralelas de múltiples conexiones dentro de una misma tarea; si necesitas maximizar el ancho de banda, considera usar axel o aria2. Sin embargo, para la mayoría de escenarios de descarga estática y automatización sencilla, Wget sigue siendo la opción más sencilla y fiable. En resumen, elegir la herramienta adecuada depende del tipo de contenido y del nivel de automatización requerido, pero Wget sigue siendo un punto de partida excelente para la mayoría de las tareas de descarga en Linux.

Esta obra está bajo una Licencia Creative Commons Atribución 4.0 Internacional para Francesc Roig francesc@vivaldi.net .

EspañolesEspañolEspañol