IP Online Check DNS patch
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