Foros del Web » Administración de Sistemas » Unix / Linux »

[SOLUCIONADO] Configurar un bash

Estas en el tema de Configurar un bash en el foro de Unix / Linux en Foros del Web. Hola necesito ayuda, estoy iniciando en debian, y tengo un inconveniente necesito utilizar un bash para que me actualize mi ip (dinamica) y mi dominio ...
  #1 (permalink)  
Antiguo 02/12/2013, 19:25
Avatar de luzzifer  
Fecha de Ingreso: julio-2009
Ubicación: Paraná - Argentina
Mensajes: 169
Antigüedad: 14 años, 9 meses
Puntos: 3
Pregunta Configurar un bash

Hola necesito ayuda, estoy iniciando en debian, y tengo un inconveniente necesito utilizar un bash para que me actualize mi ip (dinamica) y mi dominio apunte a esta nueva ip(dinamica).
El codigo es gnu es gratuito, pero no logro comprender bien como configurarlo y dejarlo funcionando.

Yo cargo los datos que realemente se por que son datos de la cuenta
USUARIO=
PASSMD5=
EMAIL=
HOST=


Código BASH:
Ver original
  1. #!/bin/bash
  2.  
  3. # Comando para ejecutar el CRON:
  4. # sh cdmon.sh &
  5.  
  6. # si cdmon.sh es el nombre del script
  7. # Con dicho comando quedará corriendo la aplicación de fondo.
  8. # IMPORTANTE: Debes tener el paquete "links2" instalado
  9.  
  10. ############################ Créditos
  11. # Versión de www.EstebanWeb.cl (1ra Actualización el 16 de enero del 2008)
  12. # blog: www.estebanweb.cl/linux
  13. # Idea original por Enrique Garcia Alvarez <kike>
  14. # kike arroba eldemonionegro punto com
  15. # http://www.eldemonionegro.com/wordpress/archivos/2006/01/15/script-para-cdmon/
  16. # Modificado por primera vez por Javier xavy en ghalician punto es
  17. # Modificado por segunda vez en diciembre del 2007 por Esteban estebanweb.cl
  18. # www.estebanweb.cl
  19. # Comentado por estebanweb.cl
  20. # contacto a esteban iglesias manriquez (todo junto) arroba gmail (.) com
  21. # puedes tener más info en www.estebanweb.cl/linux
  22. # Y más sobre este script en --->
  23. # http://www.estebanweb.cl/linux/index.php/12/2007/%c2%a1el-problema-de-la-ip-dinamica-solucionado-script-para-actualizar-ip-en-cdmon/
  24. # Software libre (licencia GNU)para la administracion de dominios en cdmon
  25. # Copyright (C) 2005-2006
  26. #######################
  27. # Para poder actualizar su IP tiene que hacer una llamada a la siguiente URL:
  28. #    https://dinamico.cdmon.org/onlineService.php
  29. # con los argumentos via GET siguientes:
  30. #    enctype=MD5
  31. #    n=nombre_de_usuario
  32. #    p=contrasea_codificada_con_md5
  33. # si la IP que quiere actualizar es diferente a la IP que le asigna el sistema
  34. # puede definir una IP propia con el argumento "cip"
  35. #    cip=x.x.x.x
  36. # de modo que tendremos:
  37. #    https://dinamico.cdmon.org/onlineService.php?enctype=MD5&n=usuario&p=1bc29b36f623ba82aaf6724fd3b16718&cip=x.x.x.x
  38. # donde cip es opcional ya que al hacer la peticin via URL el servidor devuelve
  39. # un resultado.
  40. #
  41. #    RESULTADOS:
  42. # la peticion https nos devuelve una variable con el formato siguiente:
  43. #    &resultat=resultado de la peticin del servidor&
  44. # donde tenemos las siguientes opciones:
  45. #
  46. # Cuando se hace una peticin sin la variable cip y la autentificacin ha sido
  47. # correcta nos devuelve la IP actual que detecta el servidor.
  48. #    &resultat=guardatok&newip=x.x.x.x&
  49. #
  50. # Cuando hemos mandado nuestra IP mediante la variable cip y la autentificacin
  51. # ha sido satisfactoria.
  52. #    &resultat=customok&
  53. #
  54. # Nos devuelve este resultado cuando la autentificacin ha sido
  55. # pero la IP es erronea.
  56. #    &resultat=badip&
  57. #
  58. # Nos devuelve este resultado cuando la autentificacin no ha sido satisfactoria.
  59. #    &resultat=errorlogin&
  60. #
  61. # Nos devuelve este resultado en raras ocasiones, solo cuando modificamos el
  62. # archivo que procesa todas las peticiones para obligar a todos los usuarios a
  63. # actualizar a una nueva version de la aplicacion. En su caso solo tendra
  64. # que ponerse en contacto con nosotros para obtener la nueva URL para hacer la peticion.
  65. #    &resultat=novaversio&
  66. #  
  67. ######################################################################################
  68. #                                           AQUI COMIENZA
  69. ######################################################################################
  70. ## Comenzamos con los datos de usuario de CDMON.COM
  71. # Le debes dar valores a las variables..
  72. # USUARIO = es el nombre de usuario para entrar en CDMON.COM
  73. # PASSWORDMD5 = Es la contraseña para entrar en CDMON.COM encriptada con
  74. #       el algoritmo MD5.
  75. # Puedes encriptar tu contraseña con MD5 en https://www.cdmon.com/md5.php
  76. # EMAIL = es donde queremos q lleguen los mensajes del CRON.
  77. # HOST = el dominio/subdominio que se desea actualizar
  78.  
  79.  
  80. USUARIO=
  81. PASSMD5=
  82. EMAIL=
  83. HOST=
  84.  
  85. # Aquí un ejemplo de como debería quedar
  86. # con un usuario "usuario" y con su password "contraseña"
  87. # con un computador llamado pcdeusuario y con un usuario (esto es en linux) (dentro del pc)
  88. # llamado "dueño"
  89. ###################################
  90. # USUARIO=usuario
  91. # PASSMD5=484ac397cb407ab7aad776f0663f8c85
  92. # EMAIL=dueño@pcdeusuario
  93. # HOST=mi.sub.dominio.com
  94. ###################################
  95.  
  96. #lo que primero hace es comenzar un loop
  97. while [ 1  ]                                          
  98. do
  99. #luego pregunta por la ip de la página web
  100. #aquí tendremos que substituir HOST.TLD por el dominio
  101. IP_DNS_ONLINE=$(host $HOST dinamic1.cdmon.net | grep -m1 $HOST | awk {'print $4'})
  102. #luego pregunta por la ip del pc a traves de whatismyip.com
  103. GET_IP="https://dinamico.cdmon.org/onlineService.php?enctype=MD5&n=$USUARIO&p=$PASSMD5"
  104. IP_ACTUAL=`wget --no-check-certificate $GET_IP -o /dev/null -q -O /dev/stdout | cut -f2 -d\& | cut -f2 -d=`
  105. #y compara si son iguales
  106.  
  107. if [ "$IP_DNS_ONLINE" != "$IP_ACTUAL" ]; then
  108.  
  109. # y si es que no son iguales, hace lo siguiente
  110. #establece una variable con el GET que tiene que hacer, con todos los datos
  111.     CHANGE_IP="https://dinamico.cdmon.org/onlineService.php?enctype=MD5&n=$USUARIO&p=$PASSMD5&cip=$IP_ACTUAL"
  112.     # luego al establecer la variable RESULTADO, hace el GET y la variable se queda con la respuesta que le da
  113.     # si es satisfactorio, la respuesta debería ser &resultat=customok&
  114.     RESULTADO=`wget $CHANGE_IP -o /dev/null -O /dev/stdout --no-check-certificate`
  115.     #Ponemos que es lo que queremos que salga en el email
  116.     MENSAJE="Ha habido un cambio en la IP de los nombres de dominio.\n"
  117.     MENSAJE=$MENSAJE"Se han actualizado los servidores DNS dinamicos de CDMON.\n"
  118.     MENSAJE=$MENSAJE"El resultado devuelto ha sido el siguiente:\n"
  119.    
  120.     #Finalmente envia un email con los resultados
  121.  
  122.     echo -e $MENSAJE $RESULTADO IP DEL SITIO era: $IP_DNS_ONLINE por lo tanto fue modificada por la IP ACTUAL:$IP_ACTUAL | mail $EMAIL -s "cambio de IP"
  123.    
  124. fi
  125. # Aquí debes introducir la cantidad de segundos que quieres que espere para que vuelva al principio
  126. sleep 180
  127. done
  128.  
  129. ############################ FIN
  130. ##########################################################################


Necesito ayuda para configurar y también como ejecutarlo, intente cambiando el nombre de archivo a script.sh y lo ejecute desde la terminal, pero cuando probe en el navegador no actualizaba mi dominio a la nueva ip.
  #2 (permalink)  
Antiguo 03/12/2013, 06:39
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Configurar un bash

El programa está bien comentado y es bastante claro. Si los datos son los correctos, siempre puede suceder que el problema sea que cambió la API del proveedor.

¿Has intentado introducir la misma URL en un navegador y ver qué sucede?
  #3 (permalink)  
Antiguo 03/12/2013, 10:06
Avatar de luzzifer  
Fecha de Ingreso: julio-2009
Ubicación: Paraná - Argentina
Mensajes: 169
Antigüedad: 14 años, 9 meses
Puntos: 3
Respuesta: Configurar un bash

Hola este es el api
Código API:
Ver original
  1. Para poder actualizar su IP tiene que hacer una llamada a la siguiente URL:
  2.  
  3. https://dinamico.cdmon.org/onlineService.php
  4.  
  5. con los argumentos via GET siguientes:
  6.  
  7.     enctype=MD5
  8.     n=nombre_de_usuario
  9.     p=contraseña_codificada_con_md5
  10.  
  11. si la IP que quiere actualizar es diferente a la IP que le asigna el sistema puede definir una IP propia con el argumento "cip",
  12.  
  13. cip=x.x.x.x
  14.  
  15. de modo que tendremos:
  16.  
  17. https://dinamico.cdmon.org/onlineService.php?enctype=MD5&n=usuario&p=1bc29b36f623ba82aaf6724fd3b16718&cip=x.x.x.x
  18.  
  19. donde cip es opcional ya que al hacer la petición via URL el servidor devuelve un resultado.
  20. Respuestas del servidor
  21.  
  22.     La petición https nos devuelve una o varias variables con el formato siguiente:
  23.  
  24.     &resultat=resultado de la petición del servidor&
  25.  
  26.     donde tenemos las siguientes opciones:
  27.  
  28.     Cuando se hace una petición sin la variable cip y la autentificación ha sido correcta, se nos devuelve la IP actual que detecta el servidor.
  29.  
  30.     &resultat=guardatok&newip=x.x.x.x&
  31.  
  32.     Cuando hemos mandado nuestra IP mediante la variable cip y la autentificación ha sido satisfactoria.
  33.  
  34.     &resultat=customok&
  35.  
  36.     Nos devuelve este resultado cuando la autentificación ha sido satisfactoria pero la IP es errónea.
  37.  
  38.     &resultat=badip&
  39.  
  40.     Nos devuelve este resultado cuando la autentificación no ha sido satisfactoria.
  41.  
  42.     &resultat=errorlogin&
  43.  
  44.     Nos devuelve este resultado en raras ocasiones, sólo cuando modificamos el archivo que procesa todas las peticiones para obligar a todos los usuarios a actualizar a una nueva versión de la aplicación. En su caso sólo tendrá que ponerse en contacto con nosotros para obtener la nueva URL para hacer la petición.
  45.  
  46.     &resultat=novaversio&
  47.  
  48.     Nos devuelve este resultado, para informarnos que se ha guardado bien la configuración y que los cambios no estarán operativos hasta pasados 20 minutos.
  49.  
  50.     &resultat=guardatok&temps=1200000

Una consulta ¿solo cargo los datos y nada mas? ¿como dejo ejecutar el script y hacer que se ejecute cada sierto tiempo? asi me acualiza la ip
USUARIO=
PASSMD5=
EMAIL=
HOST=

Etiquetas: bash, debian, ip, linux, servidor
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:53.