Christophe CasalegnoAutoimmune warrior, Entrepreneur & Bio/Hacker

brain@127.0.0.1:~$ cat post.html

Comment supprimer rapidement beaucoup de zones DNS dans Bind

Quand on travaille pour un MSP, un hébergeur ou un opérateur cloud, on a parfois besoin de supprimer beaucoup de zones DNS d’un coup. S’il faut en supprimer 1 500 à la main, avec vos mains et votre clavier, vous en avez pour la semaine. Je vais donc vous montrer comment le faire avec moins d’efforts sur un serveur Bind sous Linux, grâce à la puissance du shell :

!/bin/sh
rootdir="/var/bind9/chroot/etc/bind"
zonedir="/var/bind9/chroot/etc/bind/master"
conf="*.conf"
zone=$1
sed -e "/^zone \"$zone\" {/,/^};$/ d" -i $rootdir/$conf
rm $zonedir/$zone.hosts

Vous pouvez enregistrer ce fichier sous le nom de votre choix, par exemple : removezone.sh
Rendez-le exécutable : chmod +x removezone.sh

C’est très simple :

  • rootdir est le répertoire qui contient vos fichiers de configuration
  • conf désigne votre fichier de configuration, par exemple named.conf ou *.conf
  • zonedir est le répertoire dans lequel sont stockés vos fichiers de zone DNS (/var/lib/named/master, etc.)

Pour supprimer 1 000 zones, il suffit donc de mettre leurs noms dans un fichier texte, comme ceci :

toto.com
tata.com
titi.com

Une fois votre fichier prêt, lancez simplement

cat yourfile.txt |xargs -l ./removezone.sh 
et toutes les zones du fichier seront supprimées. Si vous voulez n’en supprimer qu’une seule, vous pouvez faire
./removezone.sh yourdomain.com

Christophe Casalegno
​Vous pouvez me suivre sur : Twitter | Facebook | Linkedin | Telegram | Youtube

Laisser un commentaire

Ajouter un commentaire
Christophe Casalegno Brain 0verride

Soyez simple
et direct !