centos7本地ip配置shell脚本

#!/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会失去连接而特意删除的代码。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值