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

Phil Turmel philip at turmel.org
Sat Mar 18 21:55:57 EDT 2017


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



More information about the Ale mailing list