Date: Mon, 7 Jul 2008 09:45:33 -0700 From: "David Allen" <the.real.david.allen@gmail.com> To: Mel <fbsd.questions@rachie.is-a-geek.net> Cc: freebsd-questions@freebsd.org Subject: Re: Reconfiguring network interfaces Message-ID: <2daa8b4e0807070945jb59436bqbd686f256e837965@mail.gmail.com> In-Reply-To: <200807061712.41120.fbsd.questions@rachie.is-a-geek.net> References: <2daa8b4e0807060706s4e5f8aedqe2ce00ca33bd1b46@mail.gmail.com> <200807061712.41120.fbsd.questions@rachie.is-a-geek.net>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, Jul 6, 2008 at 8:12 AM, Mel <fbsd.questions@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.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?2daa8b4e0807070945jb59436bqbd686f256e837965>