icono_twiter icono LinkedIn icono Facebook Icono Xing
Ángel García Jerez

Consultor tecnológico de desarrollo de proyectos informáticos. Co-autor del libro "Actualización y mantenimiento del PC (Edición de 2010) publicado por Anaya Multimedia

Ingeniero Técnico en Informática de Sistemas e Ingeniero en Informática (premio al mejor expediente de su promoción)

Puedes encontrarme en Autentia: Ofrecemos servicios de soporte a desarrollo, factoría y formación

Somos expertos en Java/J2EE

Ver todos los tutoriales del autor

Fecha de publicación del tutorial: 2011-12-16

Tutorial visitado 6.701 veces Descargar en PDF
Simulación de navegación manteniendo la sesión con wget

Simulación de navegación manteniendo la sesión con wget

1. Introducción

Es habitual que en las tareas de mantenimiento de nuestros sistemas automaticemos procesos que realizamos todos los días. En este tutorial vamos a ver un ejemplo práctico donde necesitemos simular la navegación por un sitio web como si de un navegador se tratara utilizando el comando wget.

Imaginaros que tenemos contratado un hosting donde tenemos nuestra aplicación web y queremos automatizar la tarea de descarga del backup de nuestro schema de la base de datos. El proveedor habitualmente nos ofrece la herramienta "CPanel" para gestionar nuestro servidor y entre las opciones se encuentra la posibilidad de descargar el backup de la base de datos.

El problema es que para poder descargar el backup necesitamos previamente habernos logado con nuestro usuario en el CPanel lo que implica que tenemos que mantener la cookie de sesión entre una petición y otra. Gracias a wget este problema se resuelve ya que nos permite guardar y enviar las cookies entre diferentes peticiones.

A continuación os muestro un gráfico donde queda más claro el proceso que debe automatizar nuestro script.

2. Entorno

Entorno utilizado para escribir este tutorial:

  • Hardware: Mac Book Pro (Core 2 Duo 2,8 Ghz, 4 GB RAM, 500 GB)
  • Sistema Operativo: Ubuntu Server 64 bits
  • Kernel: 2.6.35

3. Simulando la navegación con wget

Para aquellos que no lo sepáis el comando wget nos permite descargar contenidos de los servidores web de forma sencilla con solo poner la url (Por ejemplo "wget http://www.adictosaltrabajo.com/tutoriales/pdfs/spnego-spring.pdf").

En nuestro caso lo vamos utilizar también para simular la navegación por un sitio web manteniendo las cookies de una petición a otra.

Para nuestro ejemplo, la primera petición que realicemos al servidor debe simular el envío del formulario de login por post y además guardar las cookies para mantener la sesión en las siguientes peticiones. Lo haremos de la siguiente forma:

Con este comando lo que estamos diciendo a wget es que envíe una petición POST con los parámetros "user=username&pass=password" a la url https://www.midominio.com/cpanel/login, que no valide el certificado y que guarde las cookies en el fichero /tmp/cookies y ademas que la respuesta la guarde en /dev/null.

La siguiente petición será descargar nuestro fichero de backup utilizando las cookies de la primera petición.

Aqui le estamos indicando a wget que se descargue el fichero https://www.midominio.com/cpanel/backup.sql.gz sin validar el certificado del servidor y que envíe al servidor las cookies almacenadas en el fichero /tmp/cookies.

Como habéis podido ver con estos dos sencillos comandos hemos conseguido la descarga de un fichero en la zona privada de un web.

Ahora vamos a realizar un Shell Script que nos automatice la descarga.

Y por último si queremos que se ejecute todos los días tendremos que configurar el crontab en nuestra máquina pero este paso ya lo hacéis vosotros.

4 Conclusión

Como habéis podido ver automatizar ciertos procesos que implican navegación por la zona privada de una aplicación web es relativamente sencillo con wget y el poder del Shell Script.

A continuación puedes evaluarlo:

Regístrate para evaluarlo

Por favor, vota +1 o compártelo si te pareció interesante

Share |
Anímate y coméntanos lo que pienses sobre este TUTORIAL: