TiddlyBlog de leoperbo

Esta es la versión simplificada de una sección del blog, optimizada para una carga rápida y compatibilidad con motores de búsqueda, por lo que faltan algunas funciones. Para disfrutar de la experiencia completa visita la versión wiki de esta página.

Informar cambio de dirección IP

27 enero 2015 a las 23:13

Si se tiene un servicio de Internet con IP dinámica, el acceso remoto a un equipo se complica cada vez que la IP cambia. Para sobrellevar esto es posible generar un script que informe cuál es la nueva dirección IP, el script puede programarse para escribir un archivo de texto alojado en una carpeta que se sincronice en la nube y de esta forma poder consultarlo remotamente, dicho script puede invocarse desde una configuración en cron.

La dirección IP resultante se guarda en el archivo ip.txt que se almacena en dos directorios sincronizados con mis dispositivos:

El ejemplo de script sería:

El comando para configurar cron es:

crontab -e

Para evitar que cron envíe mail reportando cada ejecución programada hay dos opciones:

1) Deshabilitar mail para todas las actividades de cron del usuario, escribir lo siguiente antes de las tareas de cron:

MAILTO=""

2) Deshabilitar mail para tareas específicas de cron, escribir lo siguiente a un lado de la tarea sobre la que no se desea recibir notificación:

>/dev/null 2>&1

Ejemplo:

# ejemplo de entrada en crontab para ejecutar este script cada 30 minutos:
# m h  dom mon dow   command
*/30 * * * * /home/lionstone/.local/bin/ip_script.sh >/dev/null 2>&1

Nota: tomar en cuenta el límite en la frecuencia de consultas al servicio desde el que se obtiene la IP, he tenido que modificar el script en cuatro ocasiones por cuidar este detalle. Por ejemplo, para el script propuesto aquí se usa http://myexternalip.com que describe así sus límites:

Rate limit: if you exceed the rate limit of 30 requests/minute, you will receive status code 429 If you continue to exceed that limit and start to annoy me you will get banned at the IP filter level. Sorry, but I do not see the need to retrieve the IP more than maybe once every minute, 30 requests per minute is good will on my behalf.

El comando para consultar la configuración actual de cron para el usuario es:

crontab -l

Guardo un respaldo del script que me ha funcionado en:

/home/leoperbo/Software/Mis scripts de bash/ip_script.sh

Referencias: