Search This Blog

Thursday, February 12, 2009

Script changing IP and hostname in fedora, use of sed

#!/bin/sh
###############
# For FEDORA
# Use at your own risk...........................
# Reading.....
###############
echo -e "Enter IP address"
read ip
while [ `echo $ip | grep -io [.] | wc -l` != 3 ]
do
echo -e "Invalid ip, Enter again:"
read ip
done

echo -e "Enter host name"
read hst
while [ `echo $hst | grep -io [.] | wc -l` != 2 ]
do
echo -e "Invalid hst, Enter again:"
read hst
done

#echo -e "Enter Network address"
#read ip
#echo -e "Enter Gateway address"
#read ip

###############
# Warn!
###############
echo -en "You are going to change Hostname as $hst and IP as $ip:\nWrong data may harm:\n"


###############
# CHNAGE IF YES
###############
while [ 1 ]
do
read -p "Enter [Y/N]" rst
case $rst in
y|Y)
###############
# Changing hostname /etc/sysconfig/network file
###############
echo -en "NETWORKING=yes\nHOSTNAME=$hst" | cat > /tmp/temnet;
cp -f /tmp/temnet /etc/sysconfig/network;
rm -f /tmp/temnet;

###############
# Changing IP address /etc/sysconfig/network-scripts/ifcfg-eth0 file
###############
sed '/IPADDR/d' /etc/sysconfig/network-scripts/ifcfg-eth0 > /tmp/tmpip;
sed -i '5i\IPADDR='$ip /tmp/tmpip;
cp -f /tmp/tmpip /etc/sysconfig/network-scripts/ifcfg-eth0;
rm -f /tmp/tmpip;

###############
# Changing in DNS file HERE /var/named/chroot/var/named/coralsip.com.zone
###############
## dn="$hst IN A $ip"
sed '/'$hst'. IN A '$ip'/d' /var/named/chroot/var/named/coralsip.com.zone > /tmp/tmpdns;
sed -i '12i\'$hst'. IN A '$ip /tmp/tmpdns;
cp -f /tmp/tmpdns /var/named/chroot/var/named/coralsip.com.zone;
rm -f /tmp/tmpdns;

###############
# Adding in /etc/hosts file
###############
#host_line="$ip $hst ` echo $hst | cut -f1 -d"."`";
echo -en "# Do not remove the following line, or various programs\n# that require network functionality will fail.\n127.0.0.1 localhost.localdomain localhost\n" | cat > /tmp/tmphost;
echo "$ip $hst ` echo $hst | cut -f1 -d"."`"| cat >> /tmp/tmphost;
cp -f /tmp/tmphost /etc/hosts;
rm -f /tmp/tmphost;

###############
# Restarting services
###############
hostname $hst;
service network restart;
service named restart;



exit;;
n|N) echo -e "Exit without changing." ;exit ;;
*) echo -e "Wrong Input!!! Please enter [y/n]";

esac
done




#old_ip= get_def_addr
#sed -e 's/IPADDR='$old_ip'/IPADDR='$ip'/g' /etc/sysconfig/network-scripts/ifcfg-eth0 > /root/Desktop/tmp
## hostname $hst
## service network restart
#cat /etc/sysconfig/network | tr 'HOSTNAME=vikas.coralsip.com' 'HOSTNAME=$hst'
#sleep 1
#sed 's/IPADDR=`get_def_addr`/IPADDR=$ip/g' /etc/sysconfig/network-scripts/ifcfg-eth0
#sleep 1
#sed 's/HOSTNAME=`echo $hm`/HOSTNAME=`echo $hst`/g' /etc/sysconfig/network > /root/Desktop/tmp

No comments:

Post a Comment