#!/bin/bash
#auto change IP address
#by author jfedu.net 2015
if [ -z $1 ];then
echo -e "\033[32m--------------------------\033[1m"
echo "Usage:{Exec $0 192.168.1.11}"
echo -e "\033[32m\033[0m"
exit 0
fi
echo -e "\033[32m--------------------------\033[1m"
NUM_IP=`echo $1|awk -F. ‘{print $1,$2,$3,$4}‘|sed ‘s/ /\n/g‘|grep -v "^$"|wc -l`
while [ $NUM_IP -ne 4 ]
do
read -p "Please Retry Avaliable IP Address:" IPADDR
echo $IPADDR|grep -E --color "[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}"
if [ $? -eq 0 ];then
IP_1=`echo $IPADDR|awk -F. ‘{print $1}‘`
IP_2=`echo $IPADDR|awk -F. ‘{print $2}‘`
IP_3=`echo $IPADDR|awk -F. ‘{print $3}‘`
IP_4=`echo $IPADDR|awk -F. ‘{print $4}‘`
NUM="255"
if [ $IP_1 -le $NUM -a $IP_2 -le $NUM -a $IP_3 -le $NUM -a $IP_4 -le $NUM ];then
NUM_IP=`echo $IPADDR|awk -F. ‘{print $1,$2,$3,$4}‘|sed ‘s/ /\n/g‘|grep -v "^$"|wc -l`
fi
fi
done
NETWORK_CONF="/etc/sysconfig/network-scripts/ifcfg-eth0"
DNS_CONF="/etc/resolv.conf"
HOSTNAME_CONF="/etc/sysconfig/network"
BACKUP_DIR="/data/backup/`date +%Y%m%d`"
DATE=`date +%H%M`
IPADDR="$1"
HOSTNAME=`echo $IPADDR|awk -F. ‘{print "BeiJing-IDC-WEB-"$(NF-1)"-"$NF".jfedu.net"}‘`
NETMASK="255.255.255.0"
GATEWAY=`echo $IPADDR|awk -F. ‘{print $1"."$2"."$3".""1"}‘`
DNS="8.8.8.8"
if [ ! -d $BACKUP_DIR ];then
mkdir -p $BACKUP_DIR
fi
##backup and change server ip address 2015
yes|cp $NETWORK_CONF $BACKUP_DIR/
yes|cp $DNS_CONF $BACKUP_DIR/
grep "static" $NETWORK_CONF >>/dev/null
if [ $? -eq 0 ];then
sed -i "s/^IPADDR.*/IPADDR=$IPADDR/g" $NETWORK_CONF
sed -i "s/^NETMASK.*/NETMAKS=$NETMASK/g" $NETWORK_CONF
sed -i "s/^GATEWAY.*/GATEWAY=$GATEWAY/g" $NETWORK_CONF
sed -i "s/^ONBOOT.*/ONBOOT=yes/g" $NETWORK_CONF
echo "nameserver $DNS" >$DNS_CONF
hostname $HOSTNAME
sed -i "s/^HOSTNAME.*/HOSTNAME=$HOSTNAME/g" $HOSTNAME_CONF
echo "$IPADDR $HOSTNAME" >>/etc/hosts
else
sed -i "s/^BOOTPROTO.*/BOOTPROTO=static/g" $NETWORK_CONF
cat >>$NETWORK_CONF<<EOF
IPADDR=$IPADDR
NETMASK=$NETMASK
GATEWAY=$GATEWAY
EOF
sed -i "s/^ONBOOT.*/ONBOOT=yes/g" $NETWORK_CONF
hostname $HOSTNAME
sed -i "s/^HOSTNAME.*/HOSTNAME=$HOSTNAME/g" $HOSTNAME_CONF
echo "$IPADDR $HOSTNAME" >>/etc/hosts
echo "nameserver $DNS" >$DNS_CONF
fi
echo -e "\033[32mNetWork Config Change successfully,Follow:\033[0m"
echo -e "\033[32m------------------------\033[0m"
cat $NETWORK_CONF
/etc/init.d/network restart >>/dev/null 2>&1
echo -e "\033[32m------------------------\033[0m"
74,19 Bot
本文出自 “秋水无痕” 博客,转载请与作者联系!
原文:http://7456193.blog.51cto.com/7446193/1715960