shell 脚本实现手工配置ip地址

查看当前路径

[root@ansible_nfs network-scripts]# pwd
/etc/sysconfig/network-scripts

[root@ansible_nfs network-scripts]# cat ifcfg-ens33 
TYPE="Ethernet"               #网络类型是以太网
BOOTPROTO="static"       #表示我们是静态设置IP地址,none表示静态,static静态,dhcp表示动态获得ip
DEFROUTE="yes"            #这个配置里的网关作为默认路由
NAME="ens33"                 #网卡的名字
DEVICE="ens33"              #网卡的设备
ONBOOT="yes"                #启用网卡
IPADDR=192.168.102.138    #指定ip地址
PREFIX=24                           #指定子网掩码
GATEWAY=192.168.102.2    #指定默认网关,默认路由
DNS1=114.114.114.114         #指定dns


编写脚本实现手工配置ip地址

[root@ansible_nfs 7-3]# cat modify_ip_2.sh 
#!/bin/bash

#接收第1个位置变量的值赋值给new_ip
new_ip=$1

#检测ip地址是否合法
if  echo $1|egrep "^([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}$" &>/dev/null;then
    echo "ip地址合法"

    ping -w 1 $new_ip &>/dev/null
    if (( $? == 0 ));then
        echo "ip已使用,请重新输入"
    else
        echo "ip未使用"
        #备份配置文件到/backup_network
        mkdir /backup_network -p
        cp  /etc/sysconfig/network-scripts/ifcfg-ens33  /backup_network

        #修改ip地址为第1个位置变量的内容
        sed -i "/IPADDR/c IPADDR=$new_ip"  /etc/sysconfig/network-scripts/ifcfg-ens33

        #重启网络服务
        service network restart

        #获取ip地址的ens33赋值给sc_ip
        sc_ip=$(ip a|awk '/inet.*ens33$/{print $2}')

        #通过sc_ip的长度来判断有没有ip
        if (( ${#sc_ip} > 1 )) ;then
            echo "modify ip successful"
        else
            #回滚到原来的配置文件
            cp /backup_network/ifcfg-ens33  /etc/sysconfig/network-scripts/
            #重启网络服务
            service network restart
        fi
    fi
else
    echo "ip地址不合法,请重新输入"
fi

执行脚本

[root@ansible_nfs 7-3]# bash modify_ip_2.sh 500.168.102.138
ip地址不合法,请重新输入

[root@ansible_nfs 7-3]# bash modify_ip_2.sh 192.168.102.138
ip地址合法
ip已使用,请重新输入

[root@ansible_nfs 7-3]# bash modify_ip_2.sh 192.168.102.136
ip地址合法
ip未使用
Restarting network (via systemctl):                        [  确定  ]
modify ip successful

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

韩未零

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值