Aggiornamento di record DNS in Technitium DNS
Con lo script:
#!/bin/bash
# 1. Controllo che la variabile TOKEN sia definita e non vuota
if [ -z "$TOKEN" ]; then
echo "ERRORE: La variabile d'ambiente \$TOKEN non è definita."
echo "Esegui: export TOKEN='tuo_token_qui' prima di lanciare lo script."
exit 1
fi
# Controllo parametri
if [ "$#" -ne 3 ]; then
echo "Utilizzo: $0 <fqdn> <vecchio_ip> <nuovo_ip>"
echo "Esempio: $0 test.example.com 1.2.3.4 5.6.7.8"
exit 1
fi
FQDN=$1
OLD_IP=$2
NEW_IP=$3
# Estrazione del dominio (ultime due parti: es. studio-mauri.it)
DOMAIN=$(echo "$FQDN" | awk -F. '{print $(NF-1)"."$NF}')
echo "--- Esecuzione Update Technitium ---"
echo "Zona: $DOMAIN"
echo "Record: $FQDN"
echo "IP: $OLD_IP -> $NEW_IP"
echo "------------------------------------"
curl -ks \
"https://dns1.rvmgroup.it/api/zones/records/update\
?token=$TOKEN\
&domain=$FQDN\
&zone=$DOMAIN\
&type=A\
&value=$OLD_IP\
&newValue=$NEW_IP" | jq
Si possono aggiornare record DNS indicando esattamente l vecchio valore ed il nuovo, ad esempio: se si vuole cambiare
mx1.example.com da 1.2.3.4 a 5.6.7.8
export TOKEN="7dd309b596ece532a586f963f7e1e9ae9854fa3791ea2c02c3c82a6ef30f763c
curl -ks \ "https://dns1.rvmgroup.it/api/zones/records/update\ ?token=$TOKEN\ &domain=mx2.example.com\ &zone=example.com\ &type=A\ &value=1.2.3.4\ &newValue=5.6.7.8" | jq
Se il valore vecchio non coincide, fallisce.