Bonjour à tous,
Voilà après avoir un peu galéré, j’ai fini par paufiner mon petit script sh et ce grâce entre autre à votre aide (Cf mon post précédent.
Je vous explique ce que je souhaite faire et ensuite je vous explique ou je sèche.
Le but de mon script est de récupérer mon ip wan sur ma box pour mettre à jour mes définitions de zone sur mon serveur dns sous bind. Jusqu’ici ça marche. Je récupère mon ip wan sur ma livebooze , je la compare avec la dernière récupérée et si elle a changé, le lance mes opérations de modification de mon fichier de zone.
Donc techniquement la redirection de mon ndd vers la bonne ip que m’a attribué mon FAI est ok de mon côté sur mon serveur ns1.mondomaine.com.
Du côté de gandi, j’ai créé un glue record renvoyant sur mon ns1 perso, ça aussi ça marche très bien tant que mon ip renseignée en glue est correcte. A chaque changement j’ai juste à remettre la bonne ip et ça roule.
Gandi fournit une API pour pouvoir avoir accès à tout un tas de configuration facilement en python, perl, php, nodejs, c.
Et là c’est le drame, je ne suis pas vraiment développeur et j’ai bien du mal à trouver comment faire pour me servir de tout ça. Donc je fais appel à vous à la rescousse pour m’aider à trouver comment faire.
Je ne vous cache pas que si on me postait le code tout fait, j’en serais ravi. Mais bon, comme j’aime bien comprendre ce que je fais aussi, ça m’intéresserait de le faire moi même. Mais je suis lucide, je n’ai aucune connaissance dans les languages proposés et j’aimerais aussi un truc qui s’interface bien avec mon script sh (donc exit le php, seul langage dans lequel j’ai quelques connaissances).
Une âme charitable pourrait-elle me tenir la main sur ce projet? Je n’ai aucun décveloppeur dans mon entourage
merci à vous
Edit: Voici mon script pour info et une meilleure compréhension.
#!/bin/bash
# Variables de la box:
url="192.168.1.1"
login="admin"
pwd="XXXXXXX"
# Variables locales
datenum=$(date +%Y%m%d)
dbnddfile="db.example.com"
# On stocke l'IP courante comme IP_old
mv ip.box ip.box.old
# Récupération de l'adresse IP et stockage dans ip.box
curl -s -X POST -o ip.wanbox "http://$url/sysbus/NMC:getWANStatus?username=$login&password=$pwd"
sed -e 's/.*"IPAddress":"\(.*\)","Remo.*/\1/' ip.wanbox ip.box
# On crée les deux variables correspondant a l'ancienne et la nouvelle IP
read ip_old < ip.box.old
read ip_new < ip.box
# Début du script basé sur la comparaison entre l'ancienne et la nouvelle IP
if [ "$ip_old" = "$ip_new" ]
then
# Si l'IP est la même on ne fait rien et on supprime ip.box.old
#echo "l'ip n'a pas changée elle est: $ip_old"
rm ip.box.old
else
# Sinon on continue le script pour mettre à jour l'IP et on supprime ip.box.old
#echo "l'ip a changée elle est désormais: $ip_new"
# On garde une trace de l'ancienne ip dans ip.box.stock
echo $ip_old >ip.box.stock
# Met à jour l'IP dans toutes les occurences du fichier
sed 's/'$ip_old'/'$ip_new'/g' $dbnddfile db.tmp
# Change le numéro de version du fichier
sed -r -e "s/.*[0-9]{8}.*; Serial/ "$datenum"01 ; Serial/" db.tmp db.tmp2
rm $dbnddfile db.tmp ip.box.old
mv db.tmp2 $dbnddfile
fi