Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 2 May 2006 09:12:21 -0400
From:      "fbsd" <fbsd@a1poweruser.com>
To:        "freebsd-questions@FreeBSD. ORG" <freebsd-questions@FreeBSD.ORG>
Subject:   dhclient-exit-hooks 
Message-ID:  <MIEPLLIBMLEEABPDBIEGKEPFHFAA.fbsd@a1poweruser.com>

next in thread | raw e-mail | index | archive | help
When this script runs the logger statements do not create any
message in the targeted log files.
IF I execute the same logger statements from the command
line they work as expected.
This is the boot time messages.

dc0: link state changed to DOWN
dc0: no link ....dc0: link state changed to UP
 got link
dc0: link state changed to DOWN
DHCPREQUEST on dc0 to 255.255.255.255 port 67
dc0: link state changed to UP
DHCPACK from 10.0.10.2
dc0: link state changed to DOWN
bound to 10.0.10.4 -- renewal in 43200 seconds.


IF I execute the cat command to issue the notification email
from the command line it works fine, but when used in the
script I get these messages during boot process.
I am running postfix launched by the sendmail wrappers
on a FreeBSD 6.0 system.

"~/.mailrc": No match.
DHCPREQUEST on dc0 to 255.255.255.255 port 67
/libexec/ld-elf.so.1: Shared object "libpcre.so.0" not found,
required by "send-mail"
dc0: link state changed to UP
DHCPREQUEST on dc0 to 255.255.255.255 port 67
DHCPACK from 10.0.10.2
dc0: link state changed to DOWN
bound to 10.0.10.4 -- renewal in 43200 seconds.




#! /bin/sh

#############  Start of refresh dhcpd dns ip script
#################
# This script will propagate to dhcpd the changed dns servers ip
# addresswhich dhcp-client puts in resolv.conf.
#
# In dhcpd.conf replace the "option domain-name-servers" line with
this
#
#  include "/etc/dhcpd.name-servers";
#
# Script uses the dhcpc variables to build temp line in dhcpd
format.
# Then compare temp content to production content.
# If different replace production content with new content from temp
and
# restart dhcp to reread dhcpd.conf containing new ISP dns ip
addresses.
#
# logging event and sending email to user root is optional.
#
# Note: All LAN machines using dhcpd will not get new ISP dns ip
# addresses until they reboot or their lease comes up for renewal.
#
# Each of the following lines must be one long line. IE: no wrap
around
####################################################################
####

# load my_domain_name_servers variable with ISP dns ip addresses
from dhcpc
my_domain_name_servers=`echo $new_domain_name_servers | sed -e 's/
/, /g'`

# Create single line in file to be included in dhcpd.conf
echo "option domain-name-servers $my_domain_name_servers ;" >
/etc/dhcpd.name-servers.tmp

# See if different from what production file contains
cmp -s /etc/dhcpd.name-servers.tmp /etc/dhcpd.name-servers
if [ $? -gt 0 ]; then
  # move the new file into place
  mv /etc/dhcpd.name-servers.tmp /etc/dhcpd.name-servers
  # restart dhcp using whatever is appropriate for your platform
  #service dhcpd restart
  #/usr/local/etc/rc.d/isc-dhcpd.sh restart -q
  # Write message to /var/log/dhcpc.log to document event.
  logger -p user.warning -t dhclient Your ISP DNS IP addresses
changed.
  # Write message to /var/log/dhcpd.log to document event.
  logger -p local1.warning -t dhclient Your ISP DNS IP addresses
changed.

  # Send notification email to root user. This can wrap to next
line.
#  cat << EOF | mail -s "dhcp client changed ISP DNS IP addresses"
root
#The dhclient-exit-hook script was invoked and has determined that
your
#ISP changed the IP address of their DNS servers. The new values
have been
#auto updated to dhcpd.conf and dhcp restarted so they are now in
effect.
#
#Note: All LAN machines using dhcpd will not start using the new ISP
dns
#ip addresses until they reboot or their lease comes up for renewal.
#EOF
fi
rm -f /etc/dhcpd.name-servers.tmp
###############  End of refresh dhcpd dns ip script
###################





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?MIEPLLIBMLEEABPDBIEGKEPFHFAA.fbsd>