Reconfiguring network interfaces

David Allen the.real.david.allen at gmail.com
Mon Jul 7 16:45:36 UTC 2008


On Sun, Jul 6, 2008 at 8:12 AM, Mel <fbsd.questions at rachie.is-a-geek.net> wrote:
> 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:
> =====================================================================
> #!/bin/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.

LOL.  You've turned what was could have been an awkward scenario and a
cheap and dirty hack into something almost elegant.  Me, I'm just
trying to save some trips but I'm sure there's enough of us who have
encountered a situation where physical access is out of the question
or simply not doable.

My thanks to everyone that replied.


More information about the freebsd-questions mailing list