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.


