Manualinux
http://www.nvu.com http://www.gimp.org InicioPresentaciónActualizacionesManualesDescargasNoticiasAgradecimientoEnlaces

Entornos GráficosAplicaciones

DesarrolloEmuladoresInternetJuegosMultimediaSistema

Gestores de Descargas - FreeRapidGestores de Descargas - JDownloader

Gestores de Descargas - GNU - Wget




Gestores de Descargas - GNU Wget




Copyright

Copyright © José Luis Lara Carrascal  2008-2017   http://manualinux.eu



Sumario

Introducción
Instalación
Configuración
Ejemplos de uso
Enlaces




Introducción  

GNU Wget
, al que para abreviar vamos a llamar simplemente Wget, es una utilidad de línea de comandos para la descarga no-interactiva de archivos de internet. Soporta los protocolos HTTP, HTTPS y FTP, así como el uso de proxys HTTP. Cuando hablamos de descarga no-interactiva nos referimos al hecho de que el programa puede funcionar sin la presencia del usuario, trabajando en 2º plano, cancelando la descarga cuando el sistema se apague y pudiendo reanudarla en el próximo inicio.

Es la utilidad preferida de la mayoría de programas de GNU/Linux que requieren de conectarse a internet para la descarga de archivos, se adapta a la velocidad de conexión y al consumo de recursos del sistema de una manera asombrosa, y su consumo de cpu y memoria es simplemente ridículo, si lo comparamos con los gestores de descargas en modo gráfico que existen en GNU/Linux, algunos de ellos meras interfaces gráficas de uso de Wget.

No sólo puede descargar archivos, sino que también puede descargar páginas web en formato HTML y XHTML, recreando la estructura, de forma local, del directorio ubicado en el servidor, respetando el archivo de exclusión (robots.txt) y convirtiendo los enlaces para poder visualizarlas cuando no se está conectado a internet.



Instalación  

Dependencias

Herramientas de Compilación


Entre paréntesis la versión con la que se ha compilado Wget para la elaboración de este documento.

* GCC - (6.3.0) o Clang - (3.9.1)
* Gawk - (4.1.4)
* M4 - (1.4.18)
* Libtool - (2.4.6)
* Make - (4.2.1)
* Automake - (1.15)
* Gettext - (0.19.8.1)
* Autoconf - (2.69)
* Flex - (2.6.3)
* Pkg-config - (0.29.1)

Librerías de Desarrollo

* GnuTLS - (3.4.17)
* Libidn2 - (2.0.16)
* Libmetalink - (0.1.3)
* Libpsl - (0.17.0)
* Libunistring - (0.9.7)
* Nettle - (3.3)
* PCRE - (8.40)
* Zlib - (1.2.11)



Descarga

wget-1.19.1.tar.xz

Optimizaciones

$ export {C,CXX}FLAGS='-O3 -march=amdfam10 -mtune=amdfam10'

Donde pone amdfam10 se indica el procesador respectivo de cada sistema seleccionándolo de la siguiente tabla:
Nota informativa sobre las optimizaciones para GCC
* La opción '-march=' establece el procesador mínimo con el que funcionará el programa compilado, la opción '-mtune=' el procesador específico para el que será optimizado. 

* Los valores separados por comas, son equivalentes, es decir, que lo mismo da poner '-march=k8' que '-march=athlon64'.

* En versiones de GCC 3.2.x e inferiores se utiliza la opción '-mcpu=' en lugar de '-mtune='.
Nota informativa sobre las optimizaciones para Clang
* La opción '-mtune=' está soportada a partir de la versión 3.4 de Clang.

* Los valores de color azul no son compatibles con Clang.

* Las filas con el fondo de color amarillo son valores exclusivos de Clang, y por lo tanto, no son aplicables con GCC.
Valores CPU
Genéricos
generic Produce un código binario optimizado para la mayor parte de procesadores existentes. Utilizar este valor si no sabemos el nombre del procesador que tenemos en nuestro equipo. Este valor sólo es aplicable en la opción '-mtune=', si utilizamos GCC. Esta opción está disponible a partir de GCC 4.2.x.
native Produce un código binario optimizado para el procesador que tengamos en nuestro sistema, siendo éste detectado utilizando la instrucción cpuid. Procesadores antiguos pueden no ser detectados utilizando este valor. Esta opción está disponible a partir de GCC 4.2.x.
Intel
atom Intel Atom con soporte de instrucciones MMX, SSE, SSE2, SSE3, SSSE3 y extensiones 64-bit. Esta opción está disponible desde GCC 4.6.x, hasta GCC 4.8.x. A partir de GCC 4.9.x se utiliza la definición bonnell.
bonnell Intel Bonnell con soporte de instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3 y extensiones 64-bit. Esta opción está disponible a partir de GCC 4.9.x.
broadwell Intel Broadwell con soporte de instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND, FMA, BMI, BMI2, F16C, RDSEED, ADCX, PREFETCHW y extensiones 64-bit. Esta opción está disponible a partir de GCC 4.9.x. y Clang 3.6.x.
cannonlake Intel Cannonlake con soporte de instrucciones X87, MMX, AVX, FXSR, CMPXCHG16B, POPCNT, AES, PCLMUL, XSAVE, XSAVEOPT, LAHFSAHF, RDRAND, F16C, FSGSBase, AVX2, BMI, BMI2, FMA, LZCNT, MOVBE, INVPCID, VMFUNC, RTM, HLE, SlowIncDec, ADX, RDSEED, SMAP, MPX, XSAVEC, XSAVES, SGX, CLFLUSHOPT, AVX512, CDI, DQI, BWI, VLX, PKU, PCOMMIT, CLWB, VBMI, IFMA y SHA. Esta opción está disponible a partir de Clang 3.9.x.
core2 Intel Core2 con soporte de instrucciones MMX, SSE, SSE2, SSE3, SSSE3 y extensiones 64-bit. Esta opción está disponible a partir de GCC 4.3.x.
core-avx2 Intel Core (Haswell). Esta opción está disponible desde GCC 4.6.x, hasta GCC 4.8.x. A partir de GCC 4.9.x se utiliza la definición haswell.
core-avx-i Intel Core (ivyBridge) con soporte de instrucciones MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AES, PCLMUL, FSGSBASE, RDRND, F16C y extensiones 64-bit. Esta opción está disponible desde GCC 4.6.x, hasta GCC 4.8.x. A partir de GCC 4.9.x se utiliza la definición ivybridge.
corei7 Intel Core i7 con soporte de instrucciones MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1 y SSE4.2 y extensiones 64-bit. Soporta también los procesadores Intel Core i3 e i5. Esta opción está disponible desde GCC 4.6.x, hasta GCC 4.8.x. A partir de GCC 4.9.x se utiliza la definición nehalem.
corei7-avx Intel Core i7 con soporte de instrucciones MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AES y PCLMUL y extensiones 64-bit. Soporta también los procesadores Intel Core i3 e i5. Esta opción está disponible desde GCC 4.6.x, hasta GCC 4.8.x. A partir de GCC 4.9.x se utiliza la definición sandybridge.
haswell Intel Haswell con soporte de instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND, FMA, BMI, BMI2, F16C y extensiones 64-bit. Esta opción está disponible a partir de GCC 4.9.x.
i386 Intel i386.
i486 Intel i486.
i586, pentium Intel Pentium sin soporte de instrucciones MMX.
i686 Produce un código binario optimizado para la mayor parte de procesadores compatibles con la serie 80686 de Intel. Todos los actuales lo son.
intel Intel Haswell y Silvermont. Este valor sólo es aplicable en la opción '-mtune='. Esta opción está disponible a partir de GCC 4.9.x.
ivybridge Intel Ivy Bridge con soporte de instrucciones MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, AVX, AES, PCLMUL, FSGSBASE, RDRND, F16C y extensiones 64-bit. Esta opción está disponible a partir de GCC 4.9.x.
knl Intel Knights Landing con soporte de instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND, FMA, BMI, BMI2, F16C, RDSEED, ADCX, PREFETCHW, AVX512F, AVX512PF, AVX512ER y extensiones 64-bit. Esta opción está disponible a partir de GCC 5.x. y Clang 3.4.x.
lakemont Intel Quark Lakemont MCU, basado en el procesador Intel Pentium. Esta opción está disponible a partir de GCC 6.x y Clang 3.9.x
nehalem Intel Nehalem con soporte de instrucciones MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT y extensiones 64-bit. Esta opción está disponible a partir de GCC 4.9.x.
nocona Versión mejorada de Intel Pentium4 con soporte de instrucciones MMX, SSE, SSE2, SSE3 y extensiones 64-bit.
penryn Intel Penryn con soporte de instrucciones MMX, SSE, SSE2, SSE3, SSSE3 y SSE4.1.
pentiumpro Intel PentiumPro.
pentium2 Intel Pentium2 basado en PentiumPro con soporte de instrucciones MMX.
pentium3, pentium3m Intel Pentium3 basado en PentiumPro con soporte de instrucciones MMX y SSE.
pentium4, pentium4m Intel Pentium4 con soporte de instrucciones MMX, SSE y SSE2.
pentium-m Versión de bajo consumo de Intel Pentium3 con soporte de instrucciones MMX, SSE y SSE2. Utilizado por los portátiles Centrino.
pentium-mmx Intel PentiumMMX basado en Pentium con soporte de instrucciones MMX.
prescott Versión mejorada de Intel Pentium4 con soporte de instrucciones MMX, SSE, SSE2 y SSE3.
sandybridge Intel Sandy Bridge con soporte de instrucciones MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, AVX, AES, PCLMUL y extensiones 64-bit. Esta opción está disponible a partir de GCC 4.9.x. y Clang 3.6.x.
silvermont Intel Silvermont con soporte de instrucciones MOVBE, MMX, SSE, MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, AES, PCLMU, RDRND y extensiones 64-bit. Esta opción está disponible a partir de GCC 4.9.x. y Clang 3.6.x.
skx Intel Skylake Server con soporte de instrucciones X87, MMX, AVX, FXSR, CMPXCHG16B, POPCNT, AES, PCLMUL, XSAVE, XSAVEOPT, LAHFSAHF, RDRAND, F16C, FSGSBase, AVX2, BMI, BMI2, FMA, LZCNT, MOVBE, INVPCID, VMFUNC, RTM, HLE, SlowIncDec, ADX, RDSEED, SMAP, MPX, XSAVEC, XSAVES, SGX, CLFLUSHOPT, AVX512, CDI, DQI, BWI, VLX, PKU, PCOMMIT y CLWB. Esta opción está disponible a partir de Clang 3.5.x. A partir de Clang 3.9.x se utiliza también la definición skylake-avx512.
skylake Intel Skylake con soporte de instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND, FMA, BMI, BMI2, F16C, RDSEED, ADCX, PREFETCHW, CLFLUSHOPT, XSAVEC, XSAVES y extensiones 64-bit. Esta opción está disponible a partir de GCC 6.x. y Clang 3.6.x.
skylake-avx512 Intel Skylake Server con soporte de instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND, FMA, BMI, BMI2, F16C, RDSEED, ADCX, PREFETCHW, CLFLUSHOPT, XSAVEC, XSAVES, AVX512F, AVX512VL, AVX512BW, AVX512DQ, AVX512CD y extensiones 64-bit. Esta opción está disponible a partir de GCC 6.x. y Clang 3.9.x
slm Intel Silvermont con soporte de instrucciones X87, MMX, SSE42, FXSR, CMPXCHG16B, MOVBE, POPCNT, PCLMUL, AES, SlowDivide64, CallRegIndirect, PRFCHW, SlowLEA, SlowIncDec, SlowBTMem y LAHFSAHF. Esta opción está disponible a partir de Clang 3.4.x. A partir de Clang 3.9.x se utiliza también la definición silvermont.
westmere Intel Westmere con soporte de instrucciones MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, AES, PCLMUL y extensiones 64-bit. Esta opción está disponible a partir de GCC 4.9.x.
yonah Procesadores basados en la microarquitectura de Pentium M, con soporte de instrucciones MMX, SSE, SSE2 y SSE3.
AMD
amdfam10, barcelona Procesadores basados en AMD Family 10h core con soporte de instrucciones x86-64 (MMX, SSE, SSE2, SSE3, SSE4A, 3DNow!, enhanced 3DNow!, ABM y extensiones 64-bit). Esta opción está disponible a partir de GCC 4.3.x. La definición barcelona está disponible a partir de Clang 3.6.x.
athlon, athlon-tbird AMD Athlon con soporte de instrucciones MMX, 3DNow!, enhanced 3DNow! y SSE prefetch.
athlon4, athlon-xp, athlon-mp Versiones mejoradas de AMD Athlon con soporte de instrucciones MMX, 3DNow!, enhanced 3DNow! y full SSE.
bdver1 Procesadores basados en AMD Family 15h core con soporte de instrucciones x86-64 (FMA4, AVX, XOP, LWP, AES, PCL_MUL, CX16, MMX, SSE, SSE2, SSE3, SSE4A, SSSE3, SSE4.1, SSE4.2, ABM y extensiones 64-bit). Esta opción está disponible a partir de GCC 4.7.x.
bdver2 Procesadores basados en AMD Family 15h core con soporte de instrucciones x86-64 (BMI, TBM, F16C, FMA, LWP, AVX, XOP, LWP, AES, PCL_MUL, CX16, MMX, SSE, SSE2, SSE3, SSE4A, SSSE3, SSE4.1, SSE4.2, ABM y extensiones 64-bit). Esta opción está disponible a partir de GCC 4.7.x.
bdver3 Procesadores basados en AMD Family 15h core con soporte de instrucciones x86-64 (FMA4, AVX, XOP, LWP, AES, PCL_MUL, CX16, MMX, SSE, SSE2, SSE3, SSE4A, SSSE3, SSE4.1, SSE4.2, ABM y extensiones 64-bit). Esta opción está disponible a partir de GCC 4.8.x. y Clang 3.4.
bdver4 Procesadores basados en AMD Family 15h core con soporte de instrucciones x86-64 (BMI, BMI2, TBM, F16C, FMA, FMA4, FSGSBASE, AVX, AVX2, XOP, LWP, AES, PCL_MUL, CX16, MOVBE, MMX, SSE, SSE2, SSE3, SSE4A, SSSE3, SSE4.1, SSE4.2, ABM y extensiones 64-bit). Esta opción está disponible a partir de GCC 4.9.x. y Clang 3.5.x.
btver1 Procesadores basados en AMD Family 14h core con soporte de instrucciones x86-64 (MMX, SSE, SSE2, SSE3, SSE4A, CX16, ABM y extensiones 64-bit). Esta opción está disponible a partir de GCC 4.6.x.
btver2 Procesadores basados en AMD Family 16h core con soporte de instrucciones x86-64 (MOVBE, F16C, BMI, AVX, PCL_MUL, AES, SSE4.2, SSE4.1, CX16, ABM, SSE4A, SSSE3, SSE3, SSE2, SSE, MMX y extensiones 64-bit). Esta opción está disponible a partir de GCC 4.8.x.
geode AMD integrado con soporte de instrucciones MMX y 3DNow!. Esta opción está disponible a partir de GCC 4.3.x.
k6 AMD K6 con soporte de instrucciones MMX.
k6-2, k6-3 Versiones mejoradas de AMD K6 con soporte de instrucciones MMX y 3DNow!.
k8, opteron, athlon64, athlon-fx Procesadores basados en AMD K8 core con soporte de instrucciones x86-64 (MMX, SSE, SSE2, 3DNow!, enhanced 3DNow! y extensiones 64-bit).
k8-sse3, opteron-sse3, athlon64-sse3 Versiones mejoradas de AMD K8 core con soporte de instrucciones SSE3. Esta opción está disponible a partir de GCC 4.3.x.
x86-64 Procesadores AMD y compatibles con soporte de instrucciones x86-64, SSE2 y extensiones 64-bit.
znver1 Procesadores basados en AMD Family 17h core con soporte de instrucciones x86-64 (BMI, BMI2, F16C, FMA, FSGSBASE, AVX, AVX2, ADCX, RDSEED, MWAITX, SHA, CLZERO, AES, PCL_MUL, CX16, MOVBE, MMX, SSE, SSE2, SSE3, SSE4A, SSSE3, SSE4.1, SSE4.2, ABM, XSAVEC, XSAVES, CLFLUSHOPT, POPCNT y extensiones 64-bit). Esta opción está disponible a partir de GCC 6.x.
Otros
c3 Via C3 con soporte de instrucciones MMX y 3DNow!.
c3-2 Via C3-2 con soporte de instrucciones MMX y SSE.
winchip2 IDT Winchip2, que equivale a un i486 con soporte de instrucciones MMX y 3DNow!.
winchip-c6 IDT Winchip C6, que equivale a un i486 con soporte de instrucciones MMX.

Optimizaciones adicionales

Optimizaciones adicionales 
GCC
Graphite
$ export {C,CXX}FLAGS+=' -floop-interchange -ftree-loop-distribution -floop-strip-mine -floop-block'
LTO
$ export AR=gcc-ar; export RANLIB=gcc-ranlib; export NM=gcc-nm
$ export {C,CXX}FLAGS+=' -fuse-linker-plugin -flto=2'
Donde pone 2 se indica el número de núcleos de nuestro procesador, si sólo tiene uno, utilizar el parámetro -flto

Clang
Polly
$ export {C,CXX}FLAGS+=' -O3 -mllvm -polly -mllvm -polly-vectorizer=stripmine'
LTO
$ export AR=llvm-ar; export RANLIB='llvm-ar s'; export NM=llvm-nm
$ export {C,CXX}FLAGS+=' -flto'
ThinLTO
$ export AR=llvm-ar; export RANLIB='llvm-ar s'; export NM=llvm-nm
$ export {C,CXX}FLAGS+=' -flto=thin'
La aplicación de esta optimización es alternativa a la tradicional LTO, a partir de Clang 3.9.x, y por lo tanto, no es combinable con la misma.

Parámetros adicionales

Parámetros adicionales de eliminación de avisos específicos en el proceso de compilación
Clang
$ export {C,CXX}FLAGS+=' -Qunused-arguments'

Establecer el uso de enlazador dinámico para LLD
$ export LDFLAGS+=' -fuse-ld=lld -Wl,--allow-multiple-definition'
Optimizaciones complementarias LTO de LLD
$ export LDFLAGS+=' -Wl,--lto-jobs=2 -Wl,--lto-O3'
Donde pone 2 se indica el número de núcleos de nuestro procesador, si sólo tiene uno, no es necesario añadir el primer parámetro. 

Establecer la variable de entorno de uso de compilador para Clang
$ export {CC,CXX}=clang
Si utilizamos Clang con Ccache, tendremos que establecer la variable de entorno correspondiente de Ccache de uso de compilador.
$ export CCACHE_CC=clang

Extracción y Configuración  Bloc de Notas Información general sobre el uso de los comandos

$ tar Jxvf wget-1.19.1.tar.xz
$ cd wget-1.19.1
$ ./configure --disable-dependency-tracking --prefix=/usr --sysconfdir=/etc

Explicación de los comandos

--disable-dependency-tracking : Acelera el tiempo de compilación.
--prefix=/usr : Instala el programa en el directorio principal /usr.
--sysconfdir=/etc : Instala el archivo de configuración en /etc, en lugar de /usr/etc.

Compilación

$ make

Parámetros de compilación opcionales

-j2 : Si tenemos un procesador de doble núcleo (dual-core), y el kernel está optimizado para el mismo y es SMP, con este parámetro aumentaremos el número de procesos de compilación simultáneos a un nivel de 2 y aceleraremos el tiempo de compilación del programa de forma considerable.
-j4 : Lo mismo que arriba pero con procesadores de 4 núcleos (quad-core).

Instalación como root

$ su -c "make install-strip"

Instalación del archivo de configuración personal en nuestro home

$ cp /etc/wgetrc ~/.wgetrc

Borrar las locales adicionales instaladas con la utilidad BleachBit

$ su -c "bleachbit -c system.localizations"

Estadísticas de Compilación e Instalación de Wget

Estadísticas de Compilación e Instalación de Wget
CPU AMD Athlon(tm) II X2 260 Processor
MHz 3214.610
RAM 2048 MB
Sistema de archivos XFS
Versión de Glibc 2.24
Enlazador dinámico LLD 3.9.1
Compilador Clang 3.9.1 + Ccache 3.3.3
Parámetros de optimización -03 -march=amdfam10 -mtune=amdfam10 -mllvm -polly -mllvm -polly-vectorizer=stripmine -flto=thin
Parámetros de compilación -j2
Tiempo de compilación 43"
Archivos instalados 5
Mostrar/Ocultar la lista de archivos instalados
Ocupación de espacio en disco 1,0 MB

Archivo de configuración personal

~/.wgetrc Es el archivo de configuración personal de Wget en nuestro home.

Desinstalación como root

1) MODO TRADICIONAL

En el directorio de compilación ejecutamos el siguiente comando:

$ su -c "make uninstall"

2) MODO MANUALINUX

El principal inconveniente del comando anterior es que tenemos que tener el directorio de compilación en nuestro sistema para poder desinstalar el programa. En algunos casos esto supone muchos megas de espacio en disco. Con el paquete de scripts que pongo a continuación logramos evitar el único inconveniente que tiene la compilación de programas, y es el tema de la desinstalación de los mismos sin la necesidad de tener obligatoriamente una copia de las fuentes compiladas.

wget-1.19.1-scripts.tar.gz

$ su
# tar zxvf wget-1.19.1-scripts.tar.gz
# cd wget-1.19.1-scripts
# ./Desinstalar_wget-1.19.1

Copia de Seguridad como root

Con este otro script creamos una copia de seguridad de los binarios compilados, recreando la estructura de directorios de los mismos en un directorio de copias de seguridad (copibin) que se crea en el directorio /var. Cuando se haya creado el paquete comprimido de los binarios podemos copiarlo como usuario a nuestro home y borrar el que ha creado el script de respaldo, teniendo en cuenta que si queremos volver a restaurar la copia, tendremos que volver a copiarlo al lugar donde se ha creado.

$ su
# tar zxvf wget-1.19.1-scripts.tar.gz
# cd wget-1.19.1-scripts
# ./Respaldar_wget-1.19.1

Restaurar la Copia de Seguridad como root

Y con este otro script (que se copia de forma automática cuando creamos la copia de respaldo del programa) restauramos la copia de seguridad como root cuando resulte necesario.

$ su
# cd /var/copibin/restaurar_copias
# ./Restaurar_wget-1.19.1



Configuración de Wget  

Del archivo de configuración, lo único a tener en cuenta y que tendremos que editar es el apartado que hace referencia al proxy a utilizar (en el caso de que tengamos pensado hacerlo). Personalmente, utilizo la combinación Tor+Privoxy como proxy para la descarga de archivos de servidores con cortes continuos en la conexión, como pueden ser el de VLC o el de la web de VirtualBox, no digo ya las tortugas que tiene SourceForge, perdón, las réplicas que tiene SourceForge.

Abrimos el archivo ~/.wgetrc con un editor de texto y nos vamos a la línea 85, la descomentamos y añadimos el proxy a utilizar, en el ejemplo, el anterior mencionado, con la dirección de Privoxy.

# You can set the default proxies for Wget to use for http, https, and ftp.
# They will override the value in the environment.
#https_proxy = http://proxy.yoyodyne.com:18023/
http_proxy = 127.0.0.1:8118
#ftp_proxy = http://proxy.yoyodyne.com:18023/

Luego nos vamos a la línea 89, la descomentamos y colocamos la opción use_proxy en off, para evitar que el proxy esté siempre activado, para activarlo lo haremos con la correspondiente opción de línea de comandos.

# If you do not want to use proxy at all, set this to off.
use_proxy = off

Cuando queramos activar el proxy, le pasamos el siguiente parámetro a Wget, --proxy=on



Ejemplos de uso de Wget  

En los ejemplos que pongo a continuación, siempre utilizo la opción -c por defecto, que nos permite por un lado, continuar las descargas incompletas y por otro, evita que nos bajemos algo que ya tenemos en el directorio donde estemos ejecutando el programa.

1) Descarga de un archivo

[jose@localhost ~]$ wget -c http://ftp.gnome.org/pub/GNOME/sources/gtk+/2.12/gtk+-2.12.10-2.12.11.diff.gz
--2008-07-22 03:01:38--  http://ftp.gnome.org/pub/GNOME/sources/gtk+/2.12/gtk+-2.12.10-2.12.11.diff.gz
Resolviendo ftp.gnome.org... 130.239.18.173, 2001:6b0:e:2018::173
Connecting to ftp.gnome.org|130.239.18.173|:80... conectado.
Petición HTTP enviada, esperando respuesta... 200 OK
Longitud: 216543 (211K) [application/x-gzip]
Saving to: `gtk+-2.12.10-2.12.11.diff.gz'

26% [=========>                             ] 56.641      --.-K/s  eta 45s

2) Descarga de un archivo mediante proxy

[jose@localhost ~]$ wget -c --proxy=on http://files.libburnia-project.org/releases/libisoburn-0.2.2.pl00.tar.gz
--2008-07-22 03:05:03--  http://files.libburnia-project.org/releases/libisoburn-0.2.2.pl00.tar.gz
Connecting to 127.0.0.1:8118... conectado.
Petición Proxy enviada, esperando respuesta... 200 OK
Longitud: 580184 (567K) [application/x-gzip]
Saving to: `libisoburn-0.2.2.pl00.tar.gz'

66% [========================>              ] 385.708     4,40K/s  eta 43s


3) Descarga de múltiples archivos mediante listado local

Abrimos un editor de texto y añadimos todos los enlaces de los archivos que pretendamos descargar, un ejemplo,

http://files.libburnia-project.org/releases/libisofs-0.6.6.tar.gz
http://files.libburnia-project.org/releases/libburn-0.5.0.pl00.tar.gz
http://files.libburnia-project.org/releases/libisoburn-0.2.2.pl00.tar.gz

La guardamos por ejemplo, con el nombre, paquetes.txt y desde el mismo directorio donde tengamos este archivo ejecutamos el siguiente comando, la opción -i es la que se utiliza siempre para hacer referencia al archivo de texto con los enlaces de descarga.

[jose@localhost descargas]$ wget -c -i paquetes.txt
--2008-07-22 03:16:31--  http://files.libburnia-project.org/releases/libisofs-0.6.6.tar.gz
Resolviendo files.libburnia-project.org... 67.15.104.78
Connecting to files.libburnia-project.org|67.15.104.78|:80... conectado.
Petición HTTP enviada, esperando respuesta... 200 OK
Longitud: 540785 (528K) [application/x-gzip]
Saving to: `libisofs-0.6.6.tar.gz'

100%[======================================>] 540.785     4,93K/s   in 3m 17s

2008-07-22 03:19:50 (2,68 KB/s) - `libisofs-0.6.6.tar.gz' saved [540785/540785]

--2008-07-22 03:19:50--  http://files.libburnia-project.org/releases/libburn-0.5.0.pl00.tar.gz
Connecting to files.libburnia-project.org|67.15.104.78|:80... conectado.
Petición HTTP enviada, esperando respuesta... 200 OK
Longitud: 704280 (688K) [application/x-gzip]
Saving to: `libburn-0.5.0.pl00.tar.gz'

22% [=======>                               ] 157.680     3,87K/s  eta 3m 54s


Si queremos utilizar el proxy, el comando sería el siguiente,

$ wget -c --proxy=on -i paquetes.txt

4) Descarga FTP mediante el uso de filtros


Pongamos el caso de que nos queremos descargar todos los paquetes tar.bz2 de un directorio de un servidor FTP como por ejemplo el de X.org, con el siguiente comando lo tendremos muy fácil,

[jose@localhost descargas]$ wget -c -x --retr-symlinks ftp://ftp.x.org//pub/X11R7.3/src/lib/*.bz2
--2008-07-22 03:37:23--  ftp://ftp.x.org//pub/X11R7.3/src/lib/*.bz2
           => `ftp.x.org/pub/X11R7.3/src/lib/.listing'
Resolviendo ftp.x.org... 18.7.25.161
Connecting to ftp.x.org|18.7.25.161|:21... conectado.
Identificándose como anonymous ... ¡Dentro!
==> SYST ... hecho.   ==> PWD ... hecho.
==> TYPE I ... hecho.  ==> CWD /pub/X11R7.3/src/lib ... hecho.
==> PASV ... hecho.   ==> LIST ... hecho.

    [    <=>                                ] 11.461      10,3K/s   in 1,1s

2008-07-22 03:37:38 (10,3 KB/s) - `ftp.x.org/pub/X11R7.3/src/lib/.listing' saved [11461]

`ftp.x.org/pub/X11R7.3/src/lib/.listing' eliminado.
--2008-07-22 03:37:38--  ftp://ftp.x.org//pub/X11R7.3/src/lib/libAppleWM-1.0.0.tar.bz2
           => `ftp.x.org/pub/X11R7.3/src/lib/libAppleWM-1.0.0.tar.bz2'
==> no se requiere CWD.
==> PASV ... hecho.   ==> RETR libAppleWM-1.0.0.tar.bz2 ... hecho.
Longitud: 48

100%[=====================================================================>] 213

2008-07-22 03:38:59 (2,62 KB/s) - `ftp.x.org/pub/X11R7.3/src/lib/libAppleWM-1.0.

--2008-07-22 03:38:59--  ftp://ftp.x.org//pub/X11R7.3/src/lib/libFS-1.0.0.tar.bz
           => `ftp.x.org/pub/X11R7.3/src/lib/libFS-1.0.0.tar.bz2'
==> no se requiere CWD.
==> PASV ... hecho.   ==> RETR libFS-1.0.0.tar.bz2 ... hecho.
Longitud: 43

100%[=====================================================================>] 236

La opción -x fuerza la recreación del directorio remoto de forma local, la opción -retr-symlinks fuerza a Wget a descargarse el archivo original, ya que los del directorio remoto son simples enlaces simbólicos. El filtro que hemos utilizado es el *.bz2 y siempre hay que colocarlo en el final de la ruta del enlace FTP, ftp://ftp.x.org//pub/X11R7.3/src/lib/*.bz2. La opción de filtros sólo funciona con el protocolo FTP.

5) Descarga de una página web


En este ejemplo nos vamos al sitio español del LFS, y nos descargamos el manual completo del LFS.

[jose@localhost descargas]$ wget -c -x -r -k -np http://www.escomposlinux.org/lfs-es/lfs-es-6.3/
--2008-07-22 03:59:16--  http://www.escomposlinux.org/lfs-es/lfs-es-6.3/
Resolviendo www.escomposlinux.org... 80.24.19.36
Connecting to www.escomposlinux.org|80.24.19.36|:80... conectado.
Petición HTTP enviada, esperando respuesta... 200 OK
Longitud: 25384 (25K) [text/html]
Saving to: `www.escomposlinux.org/lfs-es/lfs-es-6.3/index.html'

100%[======================================>] 25.384      11,4K/s   in 2,2s

2008-07-22 03:59:19 (11,4 KB/s) - `www.escomposlinux.org/lfs-es/lfs-es-6.3/index.html' saved [25384/25384]

Cargando robots.txt; por favor ignore los errores.
--2008-07-22 03:59:19--  http://www.escomposlinux.org/robots.txt
Reusing existing connection to www.escomposlinux.org:80.
Petición HTTP enviada, esperando respuesta... 200 OK
Longitud: 32 [text/plain]
Saving to: `www.escomposlinux.org/robots.txt'

100%[======================================>] 32          --.-K/s   in 0s

2008-07-22 03:59:20 (759 KB/s) - `www.escomposlinux.org/robots.txt' saved [32/32]

--2008-07-22 03:59:20--  http://www.escomposlinux.org/lfs-es/lfs-es-6.3/stylesheets/lfs.css
Reusing existing connection to www.escomposlinux.org:80.
Petición HTTP enviada, esperando respuesta... 200 OK
Longitud: 8166 (8,0K) [text/css]
Saving to: `www.escomposlinux.org/lfs-es/lfs-es-6.3/stylesheets/lfs.css'

100%[======================================>] 8.166       13,1K/s   in 0,6s

La opción -r hace la descarga de forma recursiva, la opción -k convierte los enlaces remotos en enlaces locales para su visualización sin necesidad de estar conectados y la opción -np evita que Wget continúe la descarga recursiva en el nivel superior del directorio inicial del enlace.

6) Descarga de un archivo de vídeo y reproducción del mismo de forma simultánea


Este ejemplo lo podemos ver también en la documentación de MPlayer que se instala con el programa, que es de donde lo he cogido. Se trata de la descarga de un archivo de vídeo mediante Wget y de la reproducción simultánea con MPlayer mediante la ejecución de una tubería (sucesión de procesos donde el siguiente coge los datos del anterior, se dividen con el símbolo | ).

$ wget -c http://manualinux.eu/videos/josito.avi -O - | mplayer -nofs -cache 8192 -

7) Descarga de un archivo de un sitio web usando un agente de usuario diferente


Muchos sitios web limitan los accesos a sus archivos de descarga mediante el uso de una lista de navegadores predefinidos, con lo que si intentamos descargar un archivo en cuestión desde alguno de ellos, nos sucede esto:

[jose@localhost descargas]$ wget -c http://rbelmont.mameworld.info/sdlmame0134.zip
--2009-09-22 22:58:14--  http://rbelmont.mameworld.info/sdlmame0134.zip
Resolviendo rbelmont.mameworld.info... 174.132.130.226
Connecting to rbelmont.mameworld.info|174.132.130.226|:80... conectado.
Petición HTTP enviada, esperando respuesta... 403 Forbidden
2009-09-22 22:58:15 ERROR 403: Forbidden.


Lo solucionamos cambiando el agente de usuario que sirve para identificar al programa por uno más conocido, con el parámetro -U "Mozilla 5.0", y el resultado es el siguiente:

[jose@localhost descargas]$ wget -c -U "Mozilla 5.0" http://rbelmont.mameworld.info/sdlmame0134.zip
--2009-09-22 23:02:09--  http://rbelmont.mameworld.info/sdlmame0134.zip
Resolviendo rbelmont.mameworld.info... 174.132.130.226
Connecting to rbelmont.mameworld.info|174.132.130.226|:80... conectado.
Petición HTTP enviada, esperando respuesta... 200 OK
Longitud: 18230792 (17M) [application/zip]
Saving to: `sdlmame0134.zip'

 0% [                                       ] 60.913      4,35K/s  eta 64m 55s 




Enlaces  


http://www.gnu.org/software/wget >> La web de Wget.

http://gnuwin32.sourceforge.net/packages/wget.htm >> La versión para Windows de Wget.


Foro Galería Blog


Actualizado el 11-02-2017

Gestores de Descargas - GNU - Wget

Gestores de Descargas - FreeRapidGestores de Descargas - JDownloader