Ir a contenido

Script para cdmon


Hace algún tiempo que vengo probando un script que he preparado para actualizar mis DNS automáticamente cuando recupero la conexión a Internet con una IP diferente a la anterior.

La ruta en que he puesto el archivo es la siguiente

/etc/ppp/if-up.d/5ipcdmon

para que se ejecute cada vez que el demonio de conexión punto a punto consigua una dirección, es decir, cada vez que realiza la conexion aLa Internet.

No funciona todo lo bien que yo querría en las notificaciones de cambios, pero lo fundamental que es la actualizacion de IP si que funciona perfectamente.
Mi inconformidad viene de que es un script que no puedo probar mucho, dado que mi dirección IP no cambia cada vez que me conecto. Como no lo puedo probar bien pues la parte de mandar correos no va bien del todo, no manda bien la información sobre las IP que yo querría.

Si alguien lo prueba o le hecha un ojo y me aconseja ¡¡chupi guay!!.

Versión 0.2:
Script para actualizar DNS automaticamente en cdmon


Actualización:
Se puede seguir la evolución de este proyecto en el Wiki de El Demonio Negro.

Etiquetas: , , , , , ,

Información y Enlaces


Otras Entradas
Siguiente: la novena jornada de 2005-2006
Anterior: Sudoku

Entérate al instante

Lo más leído

Del archivo...


Comentarios

[...] Comentarios sobre el script para cdmon que actualiza automaticamente las DNS Comparte el artículo:Estos íconos enlazan con webs de marcadores sociales que permiten a los lectores compartir y descubrir nuevas webs. [...]

[...] Comentarios sobre el script para cdmon que actualiza automaticamente las DNS Comparte el artículo:Estos íconos enlazan con webs de marcadores sociales que permiten a los lectores compartir y descubrir nuevas webs. [...]

Hola, estube observando tu script, que es muy bueno, y veo que lo cargaste para que se ejecute en el momento que levanta la interfaz ppp0, ahora el tiempo que tarda el modem en conectar no lo hace dar error? y otra preguntita, es conveniente asegurarlo con cron para que se ejecute cada unos 15 minutos? te pregunto por que estamos haciendo pruebas y veo que cdmon anda muy bien. Saludos.

No influye el tiempo que tarda en conectar porque el script se ejecuta una vez que la interfaz se ha levantado.
Yo no lo metería en cron, no vale para nada. Es mejor que se acople a lo que haga la interfaz asociada.
Si lo piensas, sólo tienes que actualizar un DNS cuando tu IP cambia.
¿Cuándo cambia/puede cambiar la IP?
Cada vez que el módem (o lo que sea) levanta su interfaz.
Cuando pases de estamoseneso a un dominio.com, avisa.

Hola que tal?. Solo comentarte que en tu archivo la URL la escribes con varios >> >> que causaban un error login continuamente ;)
Y personalmente con los ISP actuales lo cierto es que si vale la pena que el archivo en cuestión lo ejecute cron, al menos los que vamos por ethX, a través de un router, ya que puede estar el router levantando una nueva IP, y tu, que sigues con tu 192.168.x.x ni te enteras, ya que tu interfaz está UP, solo que durante unos segundos no tienes inet. No te parece?
Un atento saludo
Xavy

Pues no se exactamente de que símbolos de la URL me hablas.

Si te apetece puedes pasarme el diff  entre tu archivo y el mío y tus entradas del cron para colgarlo aquí. Tendríamos así las dos versiones, una para quien tiene un router externo (yo ahora tengo pero parece que mi IP es fija) y otra para quien haga una conexión directa via modem o similar.

No lo he dicho, pero obviamente tienes razón, con tu configuración hardware hay que hacerlo como dices. Luego ya dependiendo de cómo te funcione la conexión, ajustar el horario del cron. Cada 10 minutos, cada hora o lo que te apetezca. 

Vale, ya he visto cual era el problema. El tema fue que saqué el script de la web de cdmon, y ellos para indicar que lo que aparece como un retorno de carro no es tal añadiero un >> al final de la lina y un >>al principio de la siguiente, y eso era lo que me causaba error:GET_IP="https://dinamico.cdmon.org/onlineService.php?>>>>enctype=MD5&n=$USUARIO&p=$PASSWORDMD5" Respecto a la configuracion con router externo, apenas merece la pena subir un archivo diferente, creo, ya que solo es cambiar el nombre de la interfaz, en mi caso eth1.Un atento saludoXavy ;)  

Ok, ahí quedan los comentarios por si a alguien le surgen dudas.

Te has olvidado del código del cron, pero hay gente a la que quizás le venga bien, ale, estírate.

Al final lo he trabajado un poquito más, quedando así la cosa:
## Datos de usuario de CDMON.ORG
# USUARIO = es el nombre de usuario para entrar en CDMON.ORG
# PASSWORDMD5 = Es la contrasenia para entrar en CDMON.ORG encriptada con
#el algoritmo MD5. Hay programas (tambien online) para ello.
#USUARIO=tu-usuario-de-cdmonPASSWORDMD5=tu-password-de-cdmon-encriptada
## Datos propios de la maquina donde ejecutamos el script# IFZ = Interfaz de red que se conecta a Internet
# EMAIL = Direccion de correo donde enviar las notificaciones de los cambios#comentamos esto ya que no lo necesitaremos para esta variante
#IFZ=eth1EMAIL=tu@correo.com#Dejamos de usar cdmon para obtener la IP, ya que siempre nos va a dar la IP que estamos usando en este momento
#GET_IP="https://www.cdmon.com/pcontrol/dnsdinamico/onlineService.php?enctype=MD5&n=$USUARIO&p=$PASSWORDMD5"
#IP_DNS_ONLINE=`wget $GET_IP -o /dev/null -q -O /dev/stdout | cut -f2 -d\& | cut -f2 -d=`
#En su lugar, primero observamos hacia donde esta resolviendo nuestro dominio. En mi caso concreto, como lo tengo aliaseado en host para poder acceder a traves de la DNS, especifico un servidor de DNS
IP_DNS_ONLINE=$(host tu.dominio.com 212.145.4.98 | grep tu.dominio.com | awk {’print $4′})
#Como no podemos sacar la IP a través de ifconfig, ya que nos devuelve la IP interna y nola real, la sacamos por whatismyip
IP_ACTUAL=`lynx -dump http://www.whatismyip.com | grep "Your IP Is"| cut -c 38-52`echo $IP_DNS_ONLINE $IP_ACTUAL
#Eliminamos el correo con las dos IP’s ya que si es la misma molesta más que otra cosaif [ "$IP_DNS_ONLINE" != "$IP_ACTUAL" ]; then    CHANGE_IP="https://www.cdmon.com/pcontrol/dnsdinamico/onlineService.php?enctype=MD5&n=$USUARIO&p=$PASSWORDMD5&cip=$IP_ACTUAL
RESULTADO=`wget $CHANGE_IP -o /dev/null -O /dev/stdout`
MENSAJE="Ha habido un cambio en la IP de los nombres de dominio.\n"
MENSAJE=$MENSAJE"Se han actualizado los servidores DNS dinamicos de CDMON.\n"
MENSAJE=$MENSAJE"El resultado devuelto ha sido el siguiente:\n"
echo -e $IP_DNS_ONLINE $IP_ACTUAL $MENSAJE $RESULTADO | mail $EMAIL -s "cambio de IP"
fi
Respecto al codigo del crontab yo lo tengo asi:
0 0 * * * /home/xavy/bin/cdmon
De todos modos con editores gráficos como kcron o GNOME-schedule se puede hacer de una forma muy sencilla ;)

Lo he editado un poco pero no se si se entiende muy bien, cuando pueda lo intento pasar a un fichero.

Buen consejo lo del CRON, ya se me olvidaba que podían existir herramientas gráficas para configurar las tareas programadas.

[...] Inaugura esta sección incluyendo la modificación que he hecho de un script para gestionar los dominio de cdmon con IP dinámica desarrollada inicialmente por Enrique García Álvarez [...]

Con tu permiso voy a publicar mi versión del archivo en mi blog. Evidentemente, en los créditos se hará mención a esta página y a ti como creador de la base y de la idea original. Si vieses algo que prefirieses que estuviese de otro modo en el mismo, me lo comentas, y se cambiaría sin problemas ;)Te dejo la dirección del articulo: http://www.ghalician.es/index.php/18/07/2007/inauguracion-de-seccion.html y la ruta de descarga en texto plano: http://www.ghalician.es/wp-upload/cdmon

Sin problemas. GPL es GPL.

Yo de momento no tengo pensado actualizar en un tiempo, ya que ando ocupado, ahora no tengo tiempo ni de mirar los cambios.

Yo creo que el futuro de estos scripts estará en integrar cdmon con los demonios que ahora no recuerdo como se llaman de actualización de DNS dinámicos como no-IP, etc

Lo cierto es que sería interesante poder integrar de cara al usuario final todos estos servicios de DNS dinámica en un solo ejecutable: tanto dyndns, cdmon,no-IP, etc. Todo sería cuestion de bajarse los fuentes y crear una interface, sea en BASH, python, etc, que permitiese seleccionar el servicio a usar

Si no he entendido mal lo hay. No para cdmon, que es lo que yo decía que había que integrar.

En debian están como mínimo los paquetes inadyn y ez-ipudate. Creo que no son ejecutables, pero son mucho más completos.

Yo hice el script este en un rato, pero toquetear en los otros programas llevaría algo más. Igual preguntando en las páginas de los respectivos proyectos nos guían en que hay que tocar para añadir a cdmon. Igual si pinchamos a Marc (de cdmon) dona algo de pasta para hacerlo.

Hace unos dias que estoy viendo sus dos scripts
y decidi hacer una tercera modificación.
Pueden leer mi post en mi blog (http://www.estebanweb.cl/linux)
en: http://www.estebanweb.cl/linux/index.php/12/2007/%c2%a1el-problema-de-la-IP-dinamica-solucionado-script-para-actualizar-IP-en-cdmon/
o ver el script en texto plano en: http://www.estebanweb.cl/linux/cdmon.txt
decidi modificarlo porque ni la version de kike ni la de xavy me funcionaban. Además le puse un loop bastante bueno y hace que esté en background
Y finalmente, lo arregle a mi pinta y le puse comentarios para que se entienda más.

Igual lo escribo para los flojos.. jaja
–Editado por moderador: Ocupa demasiado, es suficiente con el enlace al blog y al archivo de texto :D–

Me pueden escribir sus comentarios a esteban iglesias manriquez (todo junto) arroba gmail (.) com
o visitar mi blog http://www.estebanweb.cl/linux
gracias

Gracias por el aporte esteban. Siempre le será útil a alguien :D

[...] Comentarios sobre el script para cdmon que actualiza automaticamente las DNS Te interesará: [...]


Agregue un Comentario

Consejos

Escribe correctamente, esto es la Web, no un SMS. (No te vamos a cobrar por mas de 150 caracteres) ;-).
No insultes a los demás, respeta a las personas que hay al otro lado de la pantalla y que van a leer tu opinión.


Advertencia

Los comentarios de los usuarios no se corresponden necesariamente con la opinión de El Demonio Negro.
No está permitido verter comentarios contrarios a las leyes españolas o injuriantes. Por ello, nos reservamos el derecho a eliminar los comentarios que consideremos incumplen dichos preceptos.