есть 2 ip. если один из них недоступен надо обновить A запись в DNS
генерим ключи для nsupdate
dnssec-keygen -a HMAC-MD5 -b 128 -r /dev/urandom -n USER NSUPDATE
получаем 2 файлика
Knsupdate.+157+13990.key Knsupdate.+157+13990.private
на основе Knsupdate.+157+13990.private делаем запись в named.conf
key NSUPDATE {
algorithm HMAC-MD5.SIG-ALG.REG.INT;
secret SCtSlSUwGYN3SdbUQgHJdQ==;
};
zone "dyn.net" {
type master;
allow-update { key "NSUPDATE"; };
file "master/dyn.net";
};а Knsupdate.+157+13990.key используем в скрипте
#!/bin/sh curr=$(dig +short server.dyn.net @192.168.133.30) #echo $curr #exit dt=`/bin/date +'%Y-%m-%d %H:%M:%S'` prime=$(dig +short server1.stat.net @192.168.133.30) second=$(dig +short server2.stat.net @192.168.133.30) res=$(ping -c 2 $prime) if [[ $? -ne 0 ]] then if [ "$curr" = "$prime" ] then echo "$dt ERROR! $prime not responding change to $second" >> /var/log/dynsip.log echo "server 192.168.133.30" > /var/tmp/nsupdate echo "zone dyn.net" >> /var/tmp/nsupdate echo "update delete server.dyn.net IN A" >> /var/tmp/nsupdate echo "update add server.dyn.net 60 IN A $second" >> /var/tmp/nsupdate echo "send" >> /var/tmp/nsupdate /usr/bin/nsupdate -k /home/manov/Knsupdate.+157+13990.key /var/tmp/nsupdate fi else if [ "$curr" != "$prime" ] then echo "$dt OK! $prime is alive" >> /var/log/dynsip.log echo "server 192.168.133.30" > /var/tmp/nsupdate echo "zone dyn.net" >> /var/tmp/nsupdate echo "update delete server.dyn.net IN A" >> /var/tmp/nsupdate echo "update add server.dyn.net 60 IN A $prime" >> /var/tmp/nsupdate echo "send" >> /var/tmp/nsupdate /usr/bin/nsupdate -k /home/manov/Knsupdate.+157+13990.key /var/tmp/nsupdate fi fi


