Execute command upon interface initialization?

kelvin woods kelvin at zednaught.net
Tue Apr 17 20:37:11 UTC 2007


On Tue, Apr 17, 2007 at 12:35:41PM -0400, Lowell Gilbert wrote:
> Roland Smith <rsmith at xs4all.nl> writes:
> 
> > On Tue, Apr 17, 2007 at 06:02:25PM +0300, Ido Admon wrote:
> >> Hello list,
> >> I couldn't find any way to execute an arbitrary command upon network
> >> interface initialization. My situations is that I have and ethernet card
> >> that takes DHCP from a cables provider (not a fixed IP address) and I
> >> need to update a DynDNS hostname everytime it does (everytime the IP
> >> changes).
> >> I couldn't find a way to execute shell commands using the rc system or
> >> dhclient, what did I miss?
> >
> > dhclient-script(8)? Maybe devd(8) will work as well.

Just in case you don't manage to find the appropriate text...

You'll need to create (in this instance) an /etc/dhclient-exit-hooks
script. An excerpt from mine is below, you'll need to create your own
"update_ddns" function to update your DynDNS entry.

if test "$reason" = "RENEW" || test "$reason" = "BOUND"; then
    # The old lease has been renewed or the interface is being re-bound.
	
	if test "$old_ip_address" != "$new_ip_address"; then
		# IP address has changed -- update DDNS entry.
		update_ddns
	fi
fi

Hope it helps.

> 
> devd won't work as well, because the timing is a bit off (even if you
> only get new addresses at boot time, which isn't guaranteed.  
>  
> dhclient-script already has a capability ("hooks") for running scripts
> at the appropriate times.  If you check the mailing list archive, I
> know I have previously posted the script I used to use for exactly the
> same purpose.
> _______________________________________________
> freebsd-questions at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-questions
> To unsubscribe, send any mail to "freebsd-questions-unsubscribe at freebsd.org"

-- 
kelvin


More information about the freebsd-questions mailing list