IP修改shell脚本分享
#!/bin/bash
#2020年04月27日15:57:10
#auto change server ip
#by author www.cnbugs.com
########################
ETH_IP="$1"
ETH_NAME="ens33"
ETH_DNS="223.5.5.5"
ETH_MASK="255.255.255.0"
ETH_GATEWAY="192.168.1.254"
ETH_BAK="/data/backup/`date +%Y%m%d%H%M`"
ETH_DIR="/etc/sysconfig/network-scripts/"
function change_ip(){
cat > ifcfg-$ETH_NAME <<EOF
TYPE=Ethernet
BOOTPROTO=static
DEVICE=$ETH_NAME
ONBOOT=yes
IPADDR=$ETH_IP
NETMASK=$ETH_MASK
GATEWAY=$ETH_GATEWAY
DNS1=$ETH_DNS
EOF
cat ifcfg-$ETH_NAME
echo -e "\033[32mThe server ip change succeded.\033[0m"
}
if [ $# -eq 0 ];then
echo -e "\033[32m------------------\033[0m"
echo -e "\033[32mUsage:{/bin/sh $0 192.168.1.111|192.168.1.200|help}\033[0m"
exit
fi
while true
do
IP1=$(echo $ETH_IP|cut -d"." -f1)
IP2=$(echo $ETH_IP|cut -d"." -f2)
IP3=$(echo $ETH_IP|cut -d"." -f3)
IP4=$(echo $ETH_IP|cut -d"." -f4)
if [ ! -z $IP1 ];then
if [ $IP1 -ge 1 -a $IP1 -le 255 -a $IP2 -ge 0 -a $IP2 -le 255 -a $IP3 -ge 0 -a $IP3 -le 255 -a $IP4 -ge 0 -a $IP4 -le 255 ];then
echo $ETH_IP
break
else
echo -e "\033[32m------------------\033[0m"
read -p "Please retry input server ip: " ETH_IP
fi
fi
read -p "Please retry input server ip: " ETH_IP
done
cd $ETH_DIR
if [ ! -d $ETH_BAK ];then
mkdir -p $ETH_BAK
fi
\cp ifcfg-$ETH_NAME $ETH_BAK
grep "dhcp" ifcfg-$ETH_NAME
if [ $? -eq 0 ];then
change_ip
else
echo -e "\033[32m------------------\033[0m"
cat ifcfg-$ETH_NAME
read -p "The server static ipaddr already exist,please ensure change other static ip? " INPUT
if [ $INPUT == "yes" -o $INPUT == "y" -o $INPUT == "Y" ];then
change_ip
fi
fi
read -p "The server ip change succeded,please restart network.service yes or no?" INPUT
if [ $INPUT == "yes" -o $INPUT == "y" -o $INPUT == "Y" ];then
systemctl restart network.service
else
\cp $ETH_BAK/ifcfg-$ETH_NAME $ETH_DIR/
cat ifcfg-$ETH_NAME
fi
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。