GNU/Linux >> Tutoriales Linux >  >> Linux

Consejos y trucos para usar el comando wget Linux

Wget es una utilidad de línea de comandos y código abierto para descargar archivos y páginas web de Internet. Obtiene datos de Internet y los muestra en su terminal o los guarda en un archivo. La utilidad wget no es interactiva. Puede aprovecharlo al máximo a través de scripts o incluso programar descargas de archivos.

Por lo general, los navegadores web como Firefox o Chromium también descargan archivos, excepto que, de forma predeterminada, presentan la información en una ventana gráfica y requieren que el usuario interactúe con ellos. Alternativamente, otros usuarios del sistema Linux usan el comando curl para transferir datos desde un servidor de red.

El artículo ilustra cómo usar el comando wget para descargar páginas web y archivos de Internet.

Instalación de wget en Linux

Para instalar wget en sistemas Linux basados ​​en Ubuntu/Debian:

$ apt-get install wget

Para instalar Wget en Red Hat/CentOS:

$ yum install wget

Para instalar wget en Fedora:

$ dnf install wget

Descargar un archivo con el comando wget

Puede descargar un archivo con wget proporcionando un enlace específico a una URL. Si su URL tiene como valor predeterminado index.html, entonces se descarga la página de índice. De forma predeterminada, el contenido se descarga en un archivo con el mismo nombre de archivo en su directorio de trabajo actual. El comando wget también proporciona varias opciones para canalizar la salida a menos o a la cola.

[#####@fedora ~]$ wget http://example.com | tail -n 6
--2021-11-09 12:06:02-- http://example.com/
Resolving example.com (example.com)... 93.184.216.34, 2606:2800:220:1:248:1893:25c8:1946
Connecting to example.com (example.com)|93.184.216.34|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1256 (1.2K) [text/html]
Saving to: ‘index.html.1’
index.html.1 100%[======================>] 1.23K --.-KB/s in 0s
2021-11-09 12:06:03 (49.7 MB/s) - ‘index.html.1’ saved [1256/1256]

Enviar datos descargados a la salida estándar

Puede usar el carácter -output-document con un guión - para enviar los datos descargados a la salida estándar.

[#######@fedora ~]$ wget http://example.com --output-document - | head -n8
--2021-11-09 12:17:11-- http://example.com/
Resolving example.com (example.com)... 93.184.216.34, 2606:2800:220:1:248:1893:25c8:1946
Connecting to example.com (example.com)|93.184.216.34|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1256 (1.2K) [text/html]
Saving to: ‘STDOUT’
<!doctype html> 0%[ ] 0 --.-KB/s 
<html>
<head>
<title>Example Domain</title>
<meta charset="utf-8" />
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
- 100%[======================>] 1.23K --.-KB/s in 0s
2021-11-09 12:17:12 (63.5 MB/s) - written to stdout [1256/1256]

Guardar descargas con un nombre de archivo diferente

Puede usar la opción –output-document o -O para especificar un nombre de archivo de salida diferente para su descarga.

$ wget http://fosslinux.com --output-document foo.html
$ wget http://fosslinux.com -O foofoofoo.html

Descargando una secuencia de archivos

Wget puede descargar varios archivos si conoce la ubicación y el patrón de nombre de archivo de los archivos. Puede usar la sintaxis de Bash para especificar un rango de enteros para representar una secuencia de nombres de archivo de principio a fin.

$ wget http://fosslinux.com/filename_{1..7}.webp

Descarga de varias páginas y archivos

Puede descargar varios archivos con el comando wget especificando todas las URL que contienen los archivos para descargar.

$ wget URL1 URL2 URL3

Reanudación de una descarga parcial

Si está descargando archivos grandes, puede haber interrupciones en la descarga. Wget puede determinar dónde se detuvo su descarga antes de continuar con la descarga parcial. Es útil si está descargando archivos grandes como una distribución ISO de Fedora 35 Linux. Para continuar una descarga, use la opción –continuar o -c.

$ wget --continue https://fosslinux.com/foss-linux-distro.iso

Administrar descargas recursivas con el comando wget

Utilice la opción -recursiva o -r para activar las descargas recursivas con el comando wget. El modo recursivo wget rastrea a través de la URL de un sitio proporcionado y sigue todos los enlaces hasta el nivel de profundidad predeterminado o máximo especificado.

$ wget -r fosslinux.com

De forma predeterminada, la profundidad máxima de descarga recursiva es 5. Sin embargo, wget proporciona la opción -l para especificar la profundidad máxima de recursividad.

$ wget -r -l 11 fosslinux.com

Puede especificar recursividad infinita con la opción '-l 0'. Por ejemplo, wget descargará todos los archivos de un sitio web si establece la profundidad máxima en cero (-l 0).

Conversión de enlaces para visualización local

El –convert-links es otra opción esencial de wget que convierte los enlaces para que sean adecuados para la visualización local.

$ wget -r l 3 --convert-links fosslinux.com

Descarga de tipos de archivos específicos

Puede usar la opción -A con el comando wget para descargar tipos de archivos específicos durante las descargas recursivas. Por ejemplo, use el siguiente comando wget para descargar archivos pdf de un sitio web.

$ wget -A '*.pdf -r fosslinux.com

Tenga en cuenta que el nivel de profundidad de recuperación máximo recursivo está limitado a 5 de forma predeterminada.

Descarga de archivos desde el servidor FTP

El comando wget puede resultar útil cuando necesita descargar archivos de un servidor FTP.

$ wget --ftp-user=username --ftp-password=password ftp://192.168.1.13/foofoo.pdf

En el ejemplo anterior, wget descargará 'foofoo.pdf' del servidor FTP ubicado en 192.168.1.10.

También puede utilizar la opción recursiva -r con el protocolo FTP para descargar archivos FTP de forma recursiva.

$ wget -r --ftp-user=username --ftp-password=pass ftp://192.168.1.13/

Configurar el tamaño máximo de descarga con el comando wget

Puede establecer el tamaño máximo de descarga durante las recuperaciones recursivas de archivos utilizando la opción de marca –quota. Puede especificar el tamaño de la descarga en bytes (predeterminado), kilobytes (sufijo k) o megabytes (sufijo m). El proceso de descarga se cancelará cuando se exceda el límite.

$ wget -r --quota=1024m fosslinux.com

Tenga en cuenta que las cuotas de descarga no afectan la descarga de un solo archivo.

Configuración del límite de velocidad de descarga con el comando wget

También puede usar la opción wget –limit-rate flag para limitar la velocidad de descarga al descargar archivos. Por ejemplo, el siguiente comando descargará el archivo 'foofoo.tar.gz' y limitará la velocidad de descarga a 256 KB/s.

$ wget --limit-rate=256k URL/ foofoo.tar.gz

Tenga en cuenta que puede expresar la velocidad de descarga deseada en bytes (sin sufijo), kilobytes (usando el sufijo k) o megabytes (usando el sufijo m).

Duplicar un sitio web con el comando wget

Puede descargar o duplicar un sitio completo, incluida su estructura de directorios con la opción –mirror. Reflejar un sitio es similar a la descarga recursiva sin un nivel máximo de profundidad. También puede usar la opción –recursive –level inf –timestamping –no-remove-listing, lo que significa que es infinitamente recursivo.

También puede usar wget para archivar un sitio con las opciones –no-cookies –page-requisites –convert-links. Descargará páginas completas y se asegurará de que la copia del sitio sea independiente y similar al sitio original.

$ wget --mirror --convert-links fosslinux.com 
$ wget -recursive --level inf --timestamping –no-remove-listing

Tenga en cuenta que archivar un sitio descargará una gran cantidad de datos, especialmente si el sitio web es antiguo.

Lectura de URL de un archivo de texto

El comando wget puede leer múltiples URL de un archivo de texto usando la opción -i. El archivo de texto de entrada puede contener varias URL, pero cada URL debe comenzar en una nueva línea.

$ wget -i URLS.txt

Expandir una URL acortada

Puede usar la opción wget –max-redirect para ver las URL acortadas antes de su visita. Las URL acortadas son esenciales para los medios impresos o en las redes sociales con límite de caracteres. Además, las URL acortadas también pueden ser sospechosas porque su destino está oculto de forma predeterminada.
Nota:una mejor práctica consiste en combinar las opciones –head y –location para ver los encabezados HTTP y desentrañar el destino final de la URL. Le permite echar un vistazo a una URL abreviada sin cargar el recurso completo.

[######@fedora ~]$ wget --max-redirect 0 https://t.co/GVr5v9554B?amp=1
--2021-11-10 16:22:08-- https://t.co/GVr5v9554B?amp=1
Resolving t.co (t.co)... 104.244.42.133, 104.244.42.69, 104.244.42.5, ...
Connecting to t.co (t.co)|104.244.42.133|:443... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: https://bit.ly/ [following]
0 redirections exceeded.

Nota:El destino previsto se revela en la línea de salida que comienza con la ubicación.

Modificar encabezados HTML

La información del encabezado HTTP es una de las informaciones de metadatos incrustadas en los paquetes que las computadoras envían para comunicarse durante el intercambio de datos. Por ejemplo, cada vez que visita un sitio web, su navegador envía encabezados de solicitud HTTP. Puede usar la opción –debug para revelar la información del encabezado que wget envía a su navegador para cada solicitud.

[#####@fedora ~]$ wget --debug fosslinux.com
DEBUG output created by Wget 1.21.1 on linux-gnu.
---request begin---
GET / HTTP/1.1
User-Agent: Wget/1.21.1
Accept: */*
Accept-Encoding: identity
Host: fosslinux.com
Connection: Keep-Alive
---request end---
HTTP request sent, awaiting response...
---response begin---

Ver encabezados de respuesta con el comando wget

Puede usar la opción –debug para ver la información del encabezado de respuesta en las respuestas devueltas.

[#####@fedora ~]$ wget --debug fosslinux.com
…..
---request end---
HTTP request sent, awaiting response...
---response begin---
HTTP/1.1 200 OK
Server: nginx
Date: Wed, 10 Nov 2021 13:36:29 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: keep-alive
Vary: Accept-Encoding
X-Cache: HIT
---response end---
200 OK

Responder a un código de respuesta 301

Los códigos de estado de respuesta HTTP son esenciales para los administradores web. Por lo general, un código de estado de respuesta HTTP 301 significa que una URL se ha movido permanentemente a una ubicación diferente. De forma predeterminada, wget sigue los redireccionamientos. Sin embargo, puede usar la opción –max-redirect para determinar qué hace wget cuando encuentra una respuesta 301. Por ejemplo, puede establecerlo en 0 para indicarle a wget que no siga redireccionamientos.

[######@fedora ~]$ wget --max-redirect 0 https://fosslinux.com
--2021-11-10 16:55:54-- https://fosslinux.com/
Resolving fosslinux.com (fosslinux.com)... 67.205.134.74, 2604:a880:400:d0::4bfe:a001
Connecting to fosslinux.com (fosslinux.com)|67.205.134.74|:443... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: https://www.fosslinux.com/ [following]
0 redirections exceeded.

Guardar la salida detallada de wget en un archivo de registro

De forma predeterminada, wget muestra una salida detallada en la terminal de Linux. Sin embargo, puede usar la opción -o para registrar todos los mensajes de salida en un archivo de registro específico.

$ wget -o foofoo_log.txt fosslinux.com

El comando wget anterior guardará la salida detallada en el archivo 'foofoo_log.txt'.

Ejecutar el comando wget como una araña web

Puede hacer que el comando wget funcione como una araña web usando la opción –spider. En esencia, no descargará ninguna página web, solo verificará que estén allí. Además, se informará de cualquier URL rota.

$ wget -r --spider fosslinux.com

Ejecutando el comando wget en segundo plano

Puede usar la opción -b / –background para ejecutar el proceso wget en segundo plano. Es esencial si está descargando archivos grandes que tardarán más en completarse.

$ wget -b fosslinux.com/latest.tar.gz

De forma predeterminada, la salida del proceso wget se redirige a 'wget-log'. Sin embargo, puede especificar un archivo de registro diferente con la opción -o.

Para monitorear el proceso wget, use el comando tail.

$ tail -f wget-log

Ejecutar wget en modo de depuración

Cuando ejecuta wget en modo de depuración, la salida incluye información del servidor remoto, como encabezados de solicitud y encabezados de respuesta de wget. Los encabezados de solicitud y respuesta son esenciales para los administradores de sistemas y los desarrolladores web.

$ wget --debug fosslinux.com

Cambiando el User-Agent el comando wget

Puede cambiar el Agente de usuario predeterminado con la opción –user-agent. Por ejemplo, puede usar 'Mozilla/4.0' como wget User-Agent para recuperar fosslinux.com con el siguiente comando.

$ wget --user-agent='Mozilla/4.0' fosslinux.com

Obtenga más consejos y trucos de wget en las páginas del manual oficial de wget.

Conclusión

El comando wget de Linux proporciona una forma eficiente de extraer y descargar datos de Internet sin usar un navegador. Al igual que el versátil comando curl, wget puede manejar cualquier escenario de descarga complejo, como descargas de archivos grandes, descargas no interactivas y descargas de múltiples archivos.


Linux
  1. 7 trucos útiles para usar el comando wget de Linux

  2. Consejos y trucos para usar CUPS para imprimir con Linux

  3. Consejos y trucos de variables de entorno de Linux

  4. Consejos y trucos para curl y wget

  5. 5 ejemplos de comandos Wget para descargar archivos en Linux.

Cómo descargar archivos con el comando Wget en Linux

Consejos y trucos para usar Ctrl+Z en Ubuntu Linux

19 consejos y trucos útiles para la línea de comandos de Linux

10 trucos y consejos geniales de Debian

Consejos y trucos de la línea de comandos de Netstat

Cómo descargar archivos en Rocky Linux 8 en la línea de comandos usando wget