viernes, 8 de mayo de 2009

Descargar Oracle con wget

En varias ocasiones he necesitado descargar archivos del sitio de Oracle, ya sea para bajar nuevas versiones de la base de datos, application server, sqldeveloper, etc.

El caso es que siempre los había descargado desde el explorador Web y nunca había tenido problema. Hasta que esta semana el archivo de 1.8GB de la versión 11g de la base de datos no alcanzaba a bajar completo y tronaba la conexión del explorador teniendo que reiniciar la descarga en varias ocasiones.

Por eso decidí utilizar wget para la descarga de archivos desde el sitio de Oracle pero me encontré con el siguiente problema:

# wget -c http://download-llnw.oracle.com:80/otn/linux/oracle11g/linux.x64_11gR1_database_1013.zip

--2009-05-08 10:20:43-- http://download-llnw.oracle.com/otn/linux/oracle11g/linux.x64_11gR1_database_1013.zip
Resolviendo download-llnw.oracle.com... 208.111.133.53, 208.111.133.54
Connecting to download-llnw.oracle.com|208.111.133.53|:80... conectado.
Petición HTTP enviada, esperando respuesta... 302 Found
Localización: https://profile.oracle.com/jsp/realms/otnLogin.jsp?remoteIp=148.xxx.xxx.xxx&globalId=&redirectUrl=http%3a%2f%2fdownload-llnw.oracle.com%3a80%2fotn%2flinux%2foracle11g%2flinux.x64_11gR1_database_1013.zip [siguiendo]
Redirecciona a otra URL de autentificación...
--2009-05-08 10:20:44-- https://profile.oracle.com/jsp/realms/otnLogin.jsp?remoteIp=148.xxx.xxx.xxx&globalId=&redirectUrl=http%3a%2f%2fdownload-llnw.oracle.com%3a80%2fotn%2flinux%2foracle11g%2flinux.x64_11gR1_database_1013.zip
Resolviendo profile.oracle.com... 141.146.8.116
Connecting to profile.oracle.com|141.146.8.116|:443... conectado.
Petición HTTP enviada, esperando respuesta... 200 OK
Longitud: 4082 (4,0K) [text/html]
Saving to: `otnLogin.jsp?remoteIp=148.xxx.xxx.xxx&globalId=&redirectUrl=http:%2F%2Fdownload-llnw.oracle.com:80%2Fotn%2Flinux%2Foracle11g%2Flinux.x64_11gR1_database_1013.zip'

wget está guardando la página de autentificación...
100%[======================================>] 4.082 10,6K/s in 0,4s

2009-05-08 10:20:45 (10,6 KB/s) - `otnLogin.jsp?remoteIp=148.235.72.10&globalId=&redirectUrl=http:%2F%2Fdownload-llnw.oracle.com:80%2Fotn%2Flinux%2Foracle11g%2Flinux.x64_11gR1_database_1013.zip' saved [4082/4082]

En esa página de autentificación tenemos que poner nuestro usuario y contraseña de Oracle para poder descargar archivos del sitio.

Intentamos entonces con las opciones --http-user y --http-password de wget:

# wget -c http://download-llnw.oracle.com:80/otn/linux/oracle11g/linux.x64_11gR1_database_1013.zip --http-user=xxx --http-password=xxx

Obtenemos el mismo resultado que en el intento anterior:

--2009-05-08 10:29:05-- http://download-llnw.oracle.com/otn/linux/oracle11g/linux.x64_11gR1_database_1013.zip
Resolviendo download-llnw.oracle.com... 208.111.133.52, 208.111.133.54
Connecting to download-llnw.oracle.com|208.111.133.52|:80... conectado.
Petición HTTP enviada, esperando respuesta... 302 Found
Localización: https://profile.oracle.com/jsp/realms/otnLogin.jsp?remoteIp=148.xxx.xxx.xxx&globalId=&redirectUrl=http%3a%2f%2fdownload-llnw.oracle.com%3a80%2fotn%2flinux%2foracle11g%2flinux.x64_11gR1_database_1013.zip [siguiendo]
--2009-05-08 10:29:05-- https://profile.oracle.com/jsp/realms/otnLogin.jsp?remoteIp=148.xxx.xxx.xxx&globalId=&redirectUrl=http%3a%2f%2fdownload-llnw.oracle.com%3a80%2fotn%2flinux%2foracle11g%2flinux.x64_11gR1_database_1013.zip
Resolviendo profile.oracle.com... 141.146.8.116
Connecting to profile.oracle.com|141.146.8.116|:443... conectado.
Petición HTTP enviada, esperando respuesta... 200 OK
Longitud: 4082 (4,0K) [text/html]
Saving to: `otnLogin.jsp?remoteIp=148.235.72.10&globalId=&redirectUrl=http:%2F%2Fdownload-llnw.oracle.com:80%2Fotn%2Flinux%2Foracle11g%2Flinux.x64_11gR1_database_1013.zip'

50% [=============================> ] 4.082 11,5K/s in 0,3s

2009-05-08 10:29:06 (11,5 KB/s) - `otnLogin.jsp?remoteIp=148.235.72.10&globalId=&redirectUrl=http:%2F%2Fdownload-llnw.oracle.com:80%2Fotn%2Flinux%2Foracle11g%2Flinux.x64_11gR1_database_1013.zip' saved [4082/4082]

Se vuelve a guardar la forma de autentificación ya que el enlace de descarga directo no funciona para wget sin antes haber hecho la autentificación.

Tampoco me funcionó autentificarme en el explorador Web y después intentar con wget pero leí que a algunos les dió resultado.

La forma que yo encontré para hacerlo fue la siguiente:

Primero obtienes la URL de descarga de uno los intentos fallidos:

Localización:https://profile.oracle.com/jsp/realms/otnLogin.jsp?remoteIp=148.xxx.xxx.xxx&globalId=&redirectUrl=http%3a%2f%2fdownload-llnw.oracle.com%3a80%2fotn%2flinux%2foracle11g%2flinux.x64_11gR1_database_1013.zip

La parte en color azul es la URL de la cual wget va a intentar la descarga y ésta nos va a llevar a la forma de autentificación. Aquí es donde entra la parte en color rojo y la opción --post-data de wget y se usa como sigue:

$ wget -c --no-check-certificate --post-data="remoteIp=148.xxx.xxx.xxx&globalId=&redirectUrl=http://download-llnw.oracle.com:80/otn/linux/oracle11g/linux.x64_11gR1_database_1013.zip&username=xxx&password=xxx" https://profile.oracle.com/jsp/reg/loginHandler.jsp?

*Se sustituyen las x con la IP y con el usuario y contraseña del sitio de Oracle. A la parte que dice "redirectURL" tenemos que sustituirle los caracteres %2f por /.

La opción:
-c : se usa para poder continuar con la descarga en otro momento haciendo resumen.
--no-check-certificate : para que no verifique el certificado de seguridad del sitio.
--post-data : para enviar ciertos valores a la URL tales como usuario y contraseña, URL de descarga del archivo.

Una vez hecho esto el archivo comienza a descargarse sin problema:

$ wget -c --no-check-certificate --post-data="remoteIp=148.xxx.xxx.xxx&globalId=&redirectUrl=http://download-llnw.oracle.com:80/otn/linux/oracle11g/linux.x64_11gR1_database_1013.zip&username=xxx&password=xxx" https://profile.oracle.com/jsp/reg/loginHandler.jsp?

--2009-05-08 10:47:03-- https://profile.oracle.com/jsp/reg/loginHandler.jsp?
Resolviendo profile.oracle.com... 141.146.8.116
Connecting to profile.oracle.com|141.146.8.116|:443... conectado.
Petición HTTP enviada, esperando respuesta... 302 Moved Temporarily
Localización: http://download-llnw.oracle.com:80/otn/linux/oracle11g/linux.x64_11gR1_database_1013.zip [siguiendo]
--2009-05-08 10:47:05-- http://download-llnw.oracle.com/otn/linux/oracle11g/linux.x64_11gR1_database_1013.zip
Connecting to 192.168.254.4:3128... conectado.
Petición Proxy enviada, esperando respuesta... 206 Partial Content
Longitud: 1913850002 (1.8G), 1192940242 (1.1G) remaining [application/zip]
Saving to: `linux.x64_11gR1_database_1013.zip'

44% [++++++++++++++++++++++===> ] 845,732,744 228K/s eta 77m 27s

Espero les sea de utilidad.

No hay comentarios:

Publicar un comentario