[ale] Update ifcfg-eth0 file from command line? (need to re-ip 50 servers)

Raj Wurttemberg rajaw at c64.us
Sun Mar 19 00:44:04 EDT 2017


Hey Phil,

Can't say that I even knew that sed could do multiple replacements in one
line. :)  (I've only been scripting with bash for about two years... I'm a
noob) I just Googled it and came up with this...

Is this kind of what you are talking about? (I've never used mktemp either)

TMPIPCFG=$(mktemp /etc/sysconfig/network-scripts/tmpipcfg.XXXX)
sed -i 's/IPADDR=.*/IPADDR=1.2.3.4/; s/BROADCAST=.*/BROADCAST=1.2.3.0/;
s/GATEWAY=.*/GATEWAY=1.2.3.1/' $TMPIPCFG
mv $TMPIPCFG /etc/sysconfig/network-scripts/ifcfg-eth0

Learned something new tonight... 

Thanks!
/Raj

-----Original Message-----
From: ale-bounces at ale.org [mailto:ale-bounces at ale.org] On Behalf Of Phil
Turmel
Sent: Saturday, March 18, 2017 9:56 PM
To: ale at ale.org
Subject: Re: [ale] Update ifcfg-eth0 file from command line? (need to re-ip
50 servers)

Aaaaahhhhhhgggg!

Raj, Leam, y'all making me cringe with those procedures.  For pity's sake,
use mktemp to safely make an empty temp file in the *same* folder, stream
from the original to the temp file with *one* instance of sed, then 'mv' the
temp file back over the original.  At no point will you have a partially
configured network -- filesystems are required to guarantee that renaming
over file atomically replaces it.  And at no point will you have an unsecure
temp file exposed.

Phil

On 03/18/2017 09:03 PM, Raj Wurttemberg wrote:
> Yeah, I was actually going to do a sed to just replace the old values and
do most everything in one step:
> 
> sed -i 's/IPADDR=.*/IPADDR=1.2.3.4/' 
> /etc/sysconfig/network-scripts/ifcfg-eth0 2> /dev/null sed -i 
> 's/BROADCAST=.*/BROADCAST=1.2.3.0/'
> /etc/sysconfig/network-scripts/ifcfg-eth0 2> /dev/null sed -i 
> 's/GATEWAY=.*/GATEWAY=1.2.3.1/'
> /etc/sysconfig/network-scripts/ifcfg-eth0 2> /dev/null
> 
> haha... yes, I noticed a long time ago that the RHEL tries to use any file
in the /etc/sysconfig/network-scripts directory! Doh!
> 
> Thanks,
> /Raj
> 
> 
> -----Original Message-----
> From: ale-bounces at ale.org [mailto:ale-bounces at ale.org] On Behalf Of 
> Leam Hall
> Sent: Saturday, March 18, 2017 8:32 PM
> To: Atlanta Linux Enthusiasts <ale at ale.org>
> Subject: Re: [ale] Update ifcfg-eth0 file from command line? (need to 
> re-ip 50 servers)
> 
> Untested, and I tend to do things in multiple steps.
> 
> cp /etc/sysconfig/network-scripts/ifcfg-eth0 /tmp
> 
> cat /tmp/ifcfg-eth0 | egrep -iv "ipaddr|broadcast|gateway" >
> /etc/sysconfig/network-scripts/ifcfg-eth0
> 
> echo "IPADDR=1.2.3.4" >> /etc/sysconfig/network-scripts/ifcfg-eth0
> echo "BROADCAST=1.2.3.0" >> /etc/sysconfig/network-scripts/ifcfg-eth0
> echo "GATEWAY=1.2.3.1" >> /etc/sysconfig/network-scripts/ifcfg-eth0
> 
> service network restart

_______________________________________________
Ale mailing list
Ale at ale.org
http://mail.ale.org/mailman/listinfo/ale
See JOBS, ANNOUNCE and SCHOOLS lists at
http://mail.ale.org/mailman/listinfo



More information about the Ale mailing list