1 |
#!/usr/local/bin/bash |
2 |
# Update |
3 |
# |
4 |
# Douglas Thrift |
5 |
# |
6 |
# $Id$ |
7 |
|
8 |
read -e hostname interface name secret < ~/.update || exit $? |
9 |
|
10 |
old=`host $hostname | sed -Ee "s/^$hostname has address ([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})$/\1/p;d"` |
11 |
address=`ifconfig $interface | sed -Ee 's/^ inet ([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}) netmask 0x[0-9a-f]{8} broadcast [0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$/\1/p;d'` |
12 |
|
13 |
if [[ $old != $address ]]; then |
14 |
nsupdate <<-EOF |
15 |
key $name $secret |
16 |
update delete $hostname A |
17 |
update add $hostname 3600 A $address |
18 |
send |
19 |
EOF |
20 |
fi |