63 lines
1.7 KiB
Bash
63 lines
1.7 KiB
Bash
#!/bin/bash
|
|
|
|
# cron pouvant servir au cas ou la foinctionnalite n est pas intergre a alternc
|
|
|
|
PUBLIC_IP="`awk -F'"' '/^PUBLIC_IP/ {print $2}' /etc/alternc/local.sh`"
|
|
|
|
if [ -d "/var/alternc/bind/zones" ]
|
|
then
|
|
BINDDIR="/var/alternc/bind/zones"
|
|
fi
|
|
if [ -d "/var/lib/alternc/bind/zones" ]
|
|
then
|
|
BINDDIR="/var/lib/alternc/bind/zones"
|
|
fi
|
|
BINDRELOAD=0
|
|
|
|
while read domaine gesmx gesdns
|
|
do
|
|
# for debug
|
|
#echo $domaine $gesmx $gesdns
|
|
if [ $gesdns -eq 0 ]
|
|
then
|
|
sed -i '/^autodiscover/d' $BINDDIR/$domaine
|
|
sed -i '/^autoconfig/d' $BINDDIR/$domaine
|
|
else
|
|
if [ $gesmx -eq 0 ]
|
|
then
|
|
sed -i '/^autodiscover/d' $BINDDIR/$domaine
|
|
sed -i '/^autoconfig/d' $BINDDIR/$domaine
|
|
else
|
|
ZNSERIAL="`awk '/; serial/ {print $1}' $BINDDIR/$domaine`"
|
|
NEWZNSERIAL=$((ZNSERIAL+1))
|
|
# for debug
|
|
#echo $ZNSERIAL $NEWZNSERIAL $BINDDIR
|
|
if [ `grep "^autodiscover " $BINDDIR/$domaine | wc -l` -ge 1 ]
|
|
then
|
|
echo -e "autodiscover IN A $PUBLIC_IP" >> /dev/null
|
|
else
|
|
echo -e "autodiscover IN A $PUBLIC_IP" >> $BINDDIR/$domaine
|
|
sed -i '/; serial[ \t]*$/ s/'$ZNSERIAL'/'$NEWZNSERIAL'/' $BINDDIR/$domaine
|
|
fi
|
|
if [ `grep "^autoconfig " $BINDDIR/$domaine | wc -l` -ge 1 ]
|
|
then
|
|
echo -e "autoconfig IN A $PUBLIC_IP" >> /dev/null
|
|
else
|
|
echo -e "autoconfig IN A $PUBLIC_IP" >> $BINDDIR/$domaine
|
|
sed -i '/; serial[ \t]*$/ s/'$ZNSERIAL'/'$NEWZNSERIAL'/' $BINDDIR/$domaine
|
|
fi
|
|
fi
|
|
fi
|
|
if [ `awk '/; serial/ {print $1}' $BINDDIR/$domaine` -gt $ZNSERIAL ]
|
|
then
|
|
BINDRELOAD=$((BINDRELOAD+1))
|
|
fi
|
|
done < <(mysql --defaults-file=/etc/alternc/my.cnf -e "select domaine,gesmx,gesdns from domaines;" alternc | grep -v \| | tail --lines=+2)
|
|
|
|
if [ $BINDRELOAD -ne 0 ]
|
|
then
|
|
/usr/sbin/rndc reload
|
|
fi
|
|
|
|
|