NSupdate from CLI
Henri Hennebert
hlh at restart.be
Tue Oct 28 14:17:46 UTC 2008
Roberto de Sousa wrote:
> Hello Henri,
> Thank you for your kindness to help me on this.. I have generated the
> key and and edit my named.conf as per your instruction. I have also
> tried your script which work great. What i would like to find out more
> is that how to modify this script so that it provides flexibility
> without having to specify the host in the script?
> what i mean is that.. i could select add or delete option from CLI and
> able to add any host to forward & Reversing Zone of my DNS from my
> freeBSD CLI?
<--- clip --->
What do you thing about the attached script ? Some more check of args
may be usefull ...
Henri
-------------- next part --------------
#!/bin/sh
usage () {
echo 'Usage: dnsupdate -a|-d|-u <HostName>=<IP_Address>'
echo ' -a add DNS entry for <HostName>'
echo ' -d delete DNS entry for <HostName>'
echo ' -u update DNS entry<HostName>'
}
NSSERVER='xxx.xxx.xxx.xxx'
TSIG='host1.example.com.:XXXX...XXXX=='
#-------------------------
case $# in
2) ;;
*) usage >&2;
exit 1;;
esac
HOSTNAME=${2%%=*}
IPADDR=${2##*=}
if [ ${HOSTNAME} = $2 -o ${IPADDR} = $2 ]
then
usage >&2;
exit 1
fi
IPADDR1=${IPADDR%%.*}
IPADDRX=${IPADDR#*.}
IPADDR2=${IPADDRX%%.*}
IPADDRX=${IPADDRX#*.}
IPADDR3=${IPADDRX%%.*}
IPADDR4=${IPADDRX#*.}
if [ "${IPADDR1}.${IPADDR2}.${IPADDR3}.${IPADDR4}" != ${IPADDR} ]
then
usage >&2;
exit 1
fi
delete() {
echo update delete ${HOSTNAME}. IN A
echo update delete ${IPADDR4}.${IPADDR3}.${IPADDR2}.${IPADDR1}.in-addr.arpa. IN PTR
}
add() {
echo update add ${HOSTNAME}. 60 IN A ${IPADDR}
echo update add ${IPADDR4}.${IPADDR3}.${IPADDR2}.${IPADDR1}.in-addr.arpa. 60 IN PTR ${HOSTNAME}.
}
case $1 in
-a|-d|-u) ;;
*) usage >&2;
exit 1;;
esac
case $1 in
-a) echo server ${NSSERVER};
add;
echo send;;
-d) echo server ${NSSERVER};
delete;
echo send;;
-u) echo server ${NSSERVER};
delete;
add;
echo send;;
esac | /usr/bin/nsupdate -y ${TSIG} 1>/dev/null
More information about the freebsd-net
mailing list