On Sunday 06 July 2008 16:06:49 David Allen wrote:

> I need to make several wholesale changes to a few different systems,
> and I'd prefer to do it over SSH without losing connectivity where
> possible.  I know I can use ifconfig, or edit /etc/rc.conf directly
> and reboot, but is there a canonical way to make the changes in
> /etc/rc.conf and "reload" those changes to ensure everything is in a
> known state?  From what I can determine, running netif stop/start
> would work, but would require I do that locally.

So, you want to make changes to a machine and confirm they're correct, but 
when they're not, the old settings should be restored:

0) make sure sshd listens on all ip's ('INADDR_ANY'), not preconfigured set.

# cp -p /etc/rc.conf /etc/rc.conf.BEFORE_CHANGE
# ${EDITOR} /etc/rc.conf
# cp -p /etc/rc.conf /etc/rc.conf.CHANGES

Then this script, say /root/bin/testrc.sh:

/etc/rc.d/netif stop
sleep 1
/etc/rc.d/netif start
# sleep for 5 minutes, should be ample time to re-establish the ssh
# connection.
sleep 300
# We were not killed, this means the connection is faulty
cp -p /etc/rc.conf.BEFORE_CHANGE /etc/rc.conf
/etc/rc.d/netif stop
sleep 1
/etc/rc.d/netif start

Then run as:
daemon -p /var/run/testrc.pid /root/bin/testrc.sh

When you can log back in, simply:
kill `cat /var/run/testrc.pid` ; rm /var/run/testrc.pid
And rm /etc/rc.conf.BEFORE_CHANGE if you feel comfy.

If you couldn't log back in, inspect /etc/rc.conf.CHANGES and adjust, rm the 
pid file, rince and repeat.

Problem with today's modular software: they start with the modules
    and never get to the software part.
freebsd-questions@freebsd.org mailing list
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to