Hi,
I was wondering if anyone else has had this problem. The dns_update script
in the examples directory doesnt work. When I try to run it from the shell, I
get this error: "bash ./dns_update: No such file or directory", and it
IS in the current directory and has 755 for permissions. Its just the script
straight out of the examples dir, with only the domian changed.
#!/bin/sh
#
# Example script for "wins hook". This attempts to update the DNS
with
# new A records for the NETBIOS name that Samba passes us. We do this
# the simple way, by deleting all DNS records for the name and then
# readding all the expected 'A' records.
#
# Written by Stephen Rothwell <sfr@linuxcare.com>
#
#
# Configurable things
#
# The domain in which to create names
# YOU MUST CHANGE THIS
# N.B. include the trailing dot
#
# It is a good idea to use a subdomain of your primary domain to ensure
# that rogue machines can't take over (or delete) important names on
# your network.
DOMAIN=comp.gvs.
#
# The DNS TTL to give the records (in seconds)
#
TTL=3600
#
# NETBIOS name types that we want to create DNS records for:
# 20 is server
# 00 is workstation
# 03 is user
#
USEFUL_TYPES="20 00 03"
#
# The name of a cache file to use to avoid continual updates
# of the same name and IP addresses. If you comment this out
# then the cache is not kept at all.
#
#CACHE_FILE=/usr/local/samba/var/wins_update.cache
if [ $# -lt 4 ]; then
echo "Usage: $0 op name type ttl [ip_addr ...]" 1>&2
echo " op is one of add, refresh, delete" 1>&2
echo " name is the NETBIOS name" 1>&2
echo " type is the NETBIOS name type" 1>&2
echo " ttl is the NETBIOS time to live" 1>&2
echo " ip_addr's are the remaining IP addresses for this
name" 1>&2
exit 1
fi
NSUPDATE=`which nsupdate`
[ -x "$NSUPDATE" ] || NSUPDATE=/usr/bin/nsupdate
[ -x "$NSUPDATE" ] || NSUPDATE=/sbin/nsupdate
[ -x "$NSUPDATE" ] || NSUPDATE=/usr/sbin/nsupdate
[ -x "$NSUPDATE" ] || {
echo "Cannot find nsupdate." 1>&2
exit 1
}
OP=$1
NAME=$2
TYPE=$3
WINS_TTL=$4
shift 4
IP_ADDRS="$@"
do_update=0
for i in $USEFUL_TYPES
do
[ "$TYPE" = "$i" ] && do_update=1
done
[ $do_update = 1 ] || exit 0
if [ -n "$CACHE_FILE" ]; then
if [ -r "$CACHE_FILE" ]; then
fgrep -q -x -i "$NAME $IP_ADDRS" "$CACHE_FILE" &&
exit 0
grep -v -i "^$NAME " "$CACHE_FILE"
>"$CACHE_FILE".$$
fi
echo "$NAME $IP_ADDRS" >>"$CACHE_FILE".$$
mv "$CACHE_FILE" "$CACHE_FILE".old 2>/dev/null
mv "$CACHE_FILE".$$ "$CACHE_FILE"
fi
{
echo update delete $NAME.$DOMAIN
for i in $IP_ADDRS
do
echo update add $NAME.$DOMAIN $TTL A $i
done
echo
} 2>/dev/null | $NSUPDATE >/dev/null 2>&1 &
exit 0
-------------- next part --------------
HTML attachment scrubbed and removed