Previo a una modificación en una entrada DNS, es necesario considerar el TTL (time to life) de las entradas DNS, puesto que si el TTL de las mismas es elevado (1 día, por ejemplo) es posible que los cambios realizados no sean visibles hasta que se refresquen los registros DNS.

En ocasiones, sobretodo antes de realizar migraciones de servidores, nos encontramos con que es necesario modificar los TTLs de 100 o más dominios, lo cual es una tarea tediosa de realizar a mano. Por suerte, existe la posibilidad de realizar esto de forma semi-automática.

Para ello, y siempre, por precaución, realizaríamos un  backup de la bbdd psa de Plesk:

MYSQL_PWD=`cat /etc/psa/.psa.shadow` mysqldump -uadmin psa > /root/psa_db_backup`date +%F`.sql

 

Después, generaríamos un script cambiar_ttl.sh con el siguiente contenido:

vim /root/cambiar_ttl.sh

 

#/bin/sh
MYSQL_PWD=`cat /etc/psa/.psa.shadow` mysql -uadmin psa -sNe "select name from dns_zone;" > /root/domains_list

while read domain
do
MYSQL_PWD=`cat /etc/psa/.psa.shadow` mysql -uadmin psa -sNe "update dns_zone set ttl='300', ttl_unit='60' where name='$domain';"
done < /root/domains_list

while read domain
do
/usr/local/psa/admin/bin/dnsmng --update $domain
done < /root/domains_list

 

Este script, primeramente, obtiene un listado de todos los dominios con gestión DNS en la bbdd psa, y los vuelca a un fichero /root/domains_list, del que leé después y actualiza el registro ttl a 300 segundos (5 minutos). Por supuesto, es posible editar este valor a mas o menos tiempo.

Por último, solo quedaría dar permisos al script y ejecutarlo.

 


0 comentarios

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *