Mejorando el script de FreeDNS

Estándar

Hace unas semanas puse por aquí un script para actualizar automágicamente la IP de los dominios dinámicos de FreeDNS. Aunque la cosa más o menos funcionaba, no siempre iba bien, y por la forma en que estaba hecho el script era frecuente que no se actualizase bien la IP y, lo que es peor, una vez ha fallado la actualización ya no vuelve a actualizarse la cosa bien sin intervención manual. Además, cuando descubres el fallo siempre da la casualidad que estás en algún lugar remoto desde el que no puedes corregir la situación, lo cual es particularmente frustrante.

Por eso, he modificado un poco el script para hacerlo más robusto, y de paso simplificarlo y quitarle cosas que no me gustaban. Por ejemplo, ya no guarda la IP anterior en ningún fichero en disco, que aparte de ser algo feo feote era en parte la fuente de los problemas. Ahora simplemente se compara la IP de la conexión con un ping al dominio que queremos actualizar, y si las IPs son diferentes se actualiza. También he eliminado mucha parametrización que, sinceramente, para un script de este tamaño no es necesaria, por lo que el resultado es un script bastante más compacto. Aquí va:

#! /bin/bash 
DOMINIO="midominio.ignorelist.com"
UPDATE_URL="http://freedns.afraid.org/dynamic/update.php?asd9f7af9f98as7d9f"
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

Aparte de los cambios introducidos, el funcionamiento del script es idéntico: basta meterlo en el crontab para que se ejecute cada hora o así, y olvidarse (a ver si esta vez es verdad).

Anuncios

5 comentarios en “Mejorando el script de FreeDNS

  1. Pingback: Migrando a FreeDNS | No soy vago, soy eficiente

  2. hola me ha servido, pero tengo un problema tengo dos cuentas y me actuliza las dos, solo quiero que lo haga con una, en DEMONIO:”xxx.mooo.com”, tiene solución? gracias.

  3. Pingback: Problemas con la actualización de FreeDNS - Blog de Martín Moreno

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s