Segunda versión, ahora actualización por e-mail

Partimos de la base de la primera versión, pero en este caso el cliente enviará un e-mail mediante un script en perl que contendrá la línea que el servidor ejecutará para introducir datos en mysql

En los clientes haremos lo siguiente:

Añadimos la siguiente tarea en /etc/crontab


05,35 *     * * *     root      /usr/local/bin/dnsclient
	

En el servidor haremos lo siguiente:

Configurar un filtro de sieve para que los mails cuyo from contenga "dinamycdns@" los reenvíe a otra dirección, por ejemplo dynamicdns@localhost, correspondiendo esta dirección a una tubería hacia un script. De este modo podemos usar cualquier dirección, por ejemplo administrador@gadelek.com, y los mails correspondientes al dns dinámico son filtrados automáticamente por sieve.

O bien editar /etc/postfix/virtual. Con este método tendremos que tener la dirección dynamicdns@gadelek.com accesible desde fuera


# /etc/postfix/virtual

root    usuario@dominio.com, beep@localhost
dominio.com     este texto es ignorado
dynamicdns@gadelek.com  dynamicdns@localhost
	

Después debemos definir el alias para que se mande el e-mail hacia un script que ejecute la orden sql


# /etc/aliases

dns: "| sudo /usr/local/bin/updatedns"
	

Y poner el script en /usr/local/bin


#!/bin/bash
# Recibimos e-mail desde tubería (definida en /etc/aliases)
# Ejecutamos la sentencia sql contenida en el mail
# y la guardamos en un fichero aleatorio para que no se mezclen
# las ip's de los distintos hosts que actualizan contra nosotros
FILENAME=`cat /proc/uptime |awk '{print $2}'`
grep "update direcciones" > /tmp/$FILENAME
mysql -u usuario ips < /tmp/$FILENAME
rm /tmp/$FILENAME