#!/bin/bash
stty erase '^H'
read -p "please input you con-name,ens[eg:local ens33]: " cname ensname
if [ $? -ne 0 ];then
echo "input error"
exit
fi
#判断con-name是否存在
e_conname=`nmcli connection show | awk '{if (NR > 1) {print $1} }'| awk '/'$cname'/'`
if [ $? -ne 0 ];then
echo "cheke con-name error"
exit
fi
if [ "$e_conname" != "" ];then
echo "the con-name $cname is exist"
exit
fi
nmcli connection add con-name "$cname" type ethernet ifname $ensname && \
cp /etc/sysconfig/network-scripts/ifcfg-${cname} /etc/sysconfig/network-scripts/ifcfg-${cname}.bak
if [ $? -ne 0 ];then
echo "create new ens file error"
exit
fi
read -p "please input ip.adddress, gateway, dns\
[eg:192.168.80.199 192.168.80.2 8.8.8.8] " ip_addr gate_way d_ns
if [ $? -ne 0 ];then
echo "create new ip error"
exit
fi
uuid=`cat /etc/sysconfig/network-scripts/ifcfg-${cname}.bak | awk -F"=" '/UUID/{print $2}'`
if [ $? -ne 0 ];then
echo "get UUID error"
exit
fi
echo $uuid
cat >/etc/sysconfig/network-scripts/ifcfg-${cname}<<-EOF
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=$cname
UUID=$uuid
DEVICE=$ensname
ONBOOT=yes
IPADDR=$ip_addr
NETMASK=255.255.255.0
GATEWAY=$gate_way
DNS1=$d_ns
EOF
echo "ip 更改完成, 请重启应用"
提示:脚本执行后需要执行 nmcli connection up "你输入的con-name"
后才能完全启用,这是考虑到远程连接后更改ip会失去连接而特意删除的代码。