IP Online Check DNS patch

Aus xinux.net
Zur Navigation springen Zur Suche springen
#!/bin/bash
HOSTNAME="basti.xinux.lan"
LOG=/tmp/$HOSTNAME-update.log
IP1=10.82.1.111
IP2=10.82.1.88
TTL=1
SERVER="10.80.0.2"
KEY="7oVy81obzGnFLuem6F7gHQ=="
KEYNAME="xinux.key"
IP=$1
function test-ip(){
ping -q -w 1 -c 1 $1 > /dev/null
}
function host-ip(){
 host  $1  | cut -f 4 -d " "
}
function check-dns(){
for IPS in $(host-ip $HOSTNAME)
 do
 test $IPS == "$1" && return 0
 done
 return 1
}

function dns-patch(){
echo "Running ddns..." >> $LOG
date >> $LOG
nsupdate -v  >> $LOG << EOF
key $KEYNAME $KEY
server $SERVER
update $1 $HOSTNAME $TTL A $2
send
EOF
cat  >> $LOG << EOF
                                                                                                                       1,1           Top
 test $IPS == "$1" && return 0
 done
 return 1
}

function dns-patch(){
echo "Running ddns..." >> $LOG
date >> $LOG
nsupdate -v  >> $LOG << EOF
key $KEYNAME $KEY
server $SERVER
update $1 $HOSTNAME $TTL A $2
send
EOF
cat  >> $LOG << EOF
key $KEYNAME $KEY
server $SERVER
update $1 $HOSTNAME $TTL A $2
send
EOF


}


for IP in $IP1 $IP2
do
echo test-ip $IP
if test-ip $IP
  then
   echo "check-dns $IP"
   if ! check-dns $IP
    then
     echo dns-patch add $IP
     dns-patch add $IP
    fi
   else
   if  check-dns $IP
   then
     echo dns-patch delete $IP
     dns-patch delete $IP
   fi
fi
done