Problemas con la actualización de FreeDNS

Y de cómo le hallé solución

FreeDNSComo ya conté aquí hace algún tiempo, tanto mis páginas webs como la de algunos amigos las alojo en un servidor casero, al que llamo MartinServer :-). Realmente, para el tráfico que tienen está bastante bien. Cuento con 200Mb simétricos, tanto de subida como de bajada, y he podido comprobar tanto desde aquí en México como desde España que su rendimiento es bastante razonable.

El único problema es el de los DNS. Yo no he contratado una IP estática con mi proveedor, luego la IP de MartinServer cambia cada cierto tiempo. Por tanto, no me queda más remedio que contratar o utilizar algún servicio gratuito que se encargue de renovar los DNS  de mis páginas webs cada vez que a mi proveedor le dé por cambiar la IP de mi servidor.

Para el dominio martinalia.com contraté DynDNS. Es un servicio de pago, pero supercómodo. Tan sólo tengo que configurar los parámetros de mi cuenta en mi router (un Linksys WRT1900 AC), y ya está. Puedo estar seguro de que cada vez que cambie la IP de MartinServer, el propio router lo comunicará a DynDNS y de ahí se propagará, garantizando que martinalia.com siempre esté online.

Para el resto de los websites, en cambio, opté por un servicio gratuito: FreeDns. En mi router no se puede configurar (al menos no de forma sencilla) este servicio, por lo que tuve que recurrir a instalar en el servidor un servicio que se encargase de esta tarea.

ddclient

De entre todos los disponibles, me decanté por ddclient. Se instala así:

sudo apt-get install ddclient

Una vez instalado, hay que editar la configuración, de la siguiente manera:
sudo nano /etc/ddclient/ddclient.conf

Y dejamos la configuración con algo como esto:
# /etc/ddclient/ddclient.conf
#
daemon=3600 # Aquí le decimos la frecuencia con que se actualizará. En el ejemplo, cada 3600 segundos
protocol=freedns
use=if, if=eth0
ssl=yes # Aquí le indicamos si se utilizará o no SSL
use=web, web=http://ip.dnsexit.com/ # Aquí podemos poner cualquier servicio que nos devuelva la IP que estamos utilizando
server=freedns.afraid.org
login=nombre_de_usuario
password=’contraseña’
midominio.ejemplo.com #Aquí listamos nuestro dominio o dominios a actualizar

Y ya está. Con esto debería funcionar, y de hecho me funcionó en el momento en el que lo instalé. Sin embargo, hace unos días mi proveedor cambió la IP con la que MartinServer sale a internet. Mi web martinalia.com seguía funcionando, porque está configurada con DynDNS en el router, pero el resto de las webs dejaron de funcionar.

Le di un vistazo al log del sistema en /var/log/syslog y lo que me indicaba es que la conexión de ddclient con el servicio de FreeDNS no se podría realizar. Estuve un buen rato trasteando con la configuración para ver si lo solucionaba, pero como todo intento fue infructuoso, corté por lo sano. Me monté yo mismo una tarea programada (cron) para actualizar el servicio.

La solución

La idea me la dio No soy vago, soy eficiente. Creé un archivo llamado “freeDNS.sh”, le di permiso de ejecución. Lo edité y quedó tal que así:

#! /bin/bash
DOMINIO=”midominio.ejemplo.com”
UPDATE_URL=”http://freedns.afraid.org/dynamic/update.php?xxxxxxxxxxxx” #donde pone xxxxxxxxxxxx va la cadena que te genera para tu dominio FreeDNS
UPDATE_COMMAND=”/usr/bin/curl -s $UPDATE_URL”
logger “Actualizando FreeDNS”
CURRENTIP=`curl -s ip.dnsexit.com | sed ‘s/[^0-9.]//g’`
echo “IP actual: ${CURRENTIP}”
CURRENTIPDOMINIO=`dig -x -add +short $DOMINIO`
echo “IP de $DOMINIO: ${CURRENTIPDOMINIO}”
if [ “${CURRENTIP}” != “${CURRENTIPDOMINIO}” ] ; then
echo “Encontrada diferencia, actualizando”
logger “Actualizando a ${CURRENTIP}”
if ${UPDATE_COMMAND}; then
echo “IP actualizada”
else
echo “Error actualizando FreeDNS”
fi
else
echo “No hay cambios, no se hace nada”
fi

Una vez listo, hacemos un “crontab -e”, y añadimos la línea:
*/5 * * * * /home/ruta_a/freeDNS.sh

Con esto le decimos que actualice la información sobre nuestra IP en FreeDNS cada 5 minutos. Y listo. Funcionando.

Arqueología web

Breve historia de cómo rescaté los contenidos de mis blogs antiguos que creía perdidos para siempre

Cuando hace unos días tuve que recuperar el blog de Gustavo Montes, repasándolo para verificar que no se había perdido nada, me encontré con muchísimas referencias antiguas a mis propios blogs. Sobre todo a m4rt1n.com, un blog que mantuve desde 2006 hasta 2008. Hacía muchos años que yo había retirado el contenido de este blog de internet, pero, lo que es peor, hace un tiempo ya que perdí incluso la titularidad del dominio. Estaba perdido para siempre.

Pero también me entró nostalgia de martinalia.com, un dominio que sigue siendo de mi titularidad pero que, desde 2004, había pasado por varias fases. Desde 2004 hasta 2006 era un blog más o menos personal con bastante enfoque en el ámbito de la Gestión de Contenidos. Era un blog muy peculiar, que utilizaba un CMS francés que me encantaba, SPIP. Anteriormente a esta fase, desde 2001, había publicado varios contenidos, pero estos se perdieron para siempre.
martinalia.com antiguo

En 2006 adquirí m4rt1n.com, el dominio que antes comenté que ya he perdido (se me pasó la fecha de renovación en Godaddy…). Estuvo funcionando como mi blog personal durante tres años, y tenía este aspecto (la imagen es de muy mala calidad, pero es lo único que conservo):

com

Años después, en 2009, actualicé el blog martinalia.com a SPIP 2.0, una versión muy mejorada, utilicé una plantilla minimalista y me centré en la Gestión de Contenidos. Todos los artículos anteriores quedaron arrinconados en una escueta sección llamada “antiguos”:

martinalia.com

Posteriormente también abandoné este blog, hasta que en 2011 le di un cambio absoluto y construí uno nuevo (con el lema “Objetivo Brasil”) que era todo un ejercicio de “personal branding”. Por motivos personales tenia la necesidad de moverme hacia Brasil, y el blog fue una pieza más en ese esfuerzo (que finalmente conseguí al cabo de unos meses).

objetivo brasil

Lo cierto es que esto también dejó de tener sentido una vez alcanzado el objetivo, y finalmente lo abandoné también No fue hasta el año pasado que martinalia.com volvió a funcionar, esta vez un WordPress en el que voy subiendo críticas de películas que me interesan sin ningún orden cronológico ni de ningún otro tipo. Tan solo lo que se me antoja. También ofrezco “extras” bien interesantes para los usuarios registrados.

En cualquier caso, haciendo memoria me entró bastante nostalgia y decidí que todos esos contenidos desaparecidos merecían ser rescatados, que al fin y al cabo formaban parte de mi historia personal. Pero -y era un gran problema- tan sólo conservaba copia de seguridad del último, todos los anteriores habían desaparecido para siempre.

Archive.org al rescate

Sin copia de seguridad, la única alternativa que me quedaba era recurrir al servicio WayBack Machine que ofrece gratuitamente Internet Archive, una entidad sin ánimo de lucro que conserva en sus archivos millones de sitios webs, películas, libros, etc. En WayBack Machine quedaba constancia de todas estas antiguas versiones de mis blogs… el problema era, claro, cómo extraer esa información y poder migrarla a martin.ekiry.com.

La solución me vino con Wayback Machine Downloader, una herramienta sencilla y potente que me permitió hacer justo lo que necesitaba. Para utilizarla debes tener instalado previamente Ruby. Para instalar Wayback Machine Downloader sólo hay que teclear lo siguiente en una terminal:

gem install wayback_machine_downloader

Una vez instalado, su uso es de lo más sencillo. Con los siguientes comandos en el terminal descargué todos mis blogs “perdidos”:
wayback_machine_downloader http://www.m4rt1n.com --timestamp 20090425231334
wayback_machine_downloader http://www.martinalia.com --timestamp 20090625231334
wayback_machine_downloader http://www.martinalia.com --timestamp 20060325231334

Listo. Ya tenía todo el contenido guardado en mi disco duro. Ahora lo que tenía que hacer es pasar todos los artículos, que había guardado en formato HTML, a la base de datos de martin.ekiry.com. Para ello utilicé el plugin HTML Import2. Misión cumplida.

Eso sí, algunos (pocos) artículos se perdieron para siempre, porque Internet Archive no los había almacenado. Casi todas las imágenes se habían perdido también, con lo cual me tocó una tediosa tarea manual de búsqueda y reposición de imágenes (algunas de las originales se perdieron para siempre).

Pero básicamente está todo recuperado, disponible ahora aquí en martin.ekiry.com casi toda mis publicaciones en internet (salvo las anteriores a 2004, que esas también se perdieron para siempre).