配置centos ip地址脚本

该脚本用于在CentOS6/7系统中自动配置IP地址。它首先初始化变量,然后检查输入的IP地址和网卡名称是否合法。如果输入正确,脚本会根据IP地址的网络部分推断默认网关,并更新相应的网络配置文件,最后重启网络服务。
摘要由CSDN通过智能技术生成

本脚本主要是用于实现centos 6/7 配置ip的shell脚本
命令行配置:
bash 脚本名称 ip 网卡名称
注:
脚本名称:shell代码写入的脚本命名
ip :要配置的ip信息
网卡名称:要配置的网卡名称

#!/bin/bash

#init
host_ip=""
mask="255.255.0.0"	#默认16位掩码
gateway=""
dev=""

#	判断ip是否合法
CheckIPAddr(){
echo $1|grep "^[0-9]\{1,3\}\.\([0-9]\{1,3\}\.\)\{2\}[0-9]\{1,3\}$" > /dev/null;
#IP地址必须为全数字
	if [ $? -ne 0 ];then
		echo "这个IP不合法,请输入正确的IP:"
		exit 1
    fi
	ipaddr=$1
	net_bit1=`echo $ipaddr|awk -F . '{print $1}'`  #以"."分隔,取出每个列的值
	net_bit2=`echo $ipaddr|awk -F . '{print $2}'`
	net_bit3=`echo $ipaddr|awk -F . '{print $3}'`
	net_bit4=`echo $ipaddr|awk -F . '{print $4}'`
	for num in $net_bit1 $net_bit2 $net_bit3 $net_bit4
	do
		if [ $num -gt 255 ] || [ $num -lt 0 ];then    #每个数值必须在0-255之间
			echo "这个IP不合法,请输入正确的IP:"
			exit 1
		fi
	done
}

#	判断网卡是否存在 
CheckDev(){
	ip a |grep $1 &> /dev/null
	if [ $? -eq 0 ];then
		Dev=`ip a |grep $1 |awk -F '[: ]' '{print $3}'`
		Num=`ip a |grep $1 |wc -l`
		if [ $1 != $Dev ] || [ $Num -gt 3 ];then
			echo "这个设备不准确,请输入正确的设备名:"
			exit 1
		fi
	else	
		echo "这个设备不准确,请输入正确的设备名:"
		exit 1
	fi
}

grep -i 'CentOS' /etc/redhat-release &> /dev/null
if [ $? -eq 0 ];then


	if [ "$1" == "" ] || [ "$2" == "" ];then
		echo 'USAGE: Command <host_ip>  [dev]
	dev: '${def_dev}''
		exit 1
	fi
	
	host_ip=$1
	CheckIPAddr $host_ip
	dev=$2
	CheckDev $dev
	net_bit1=`echo ${host_ip} | awk -F'.' '{print $1}'`
	net_bit2=`echo ${host_ip} | awk -F'.' '{print $2}'`
	net_bit4=`echo ${host_ip} | awk -F'.' '{print $4}'`


	if [ ${net_bit1} -ge 0 ] && [ ${net_bit1} -le 127 ];then
		
		gateway="${net_bit1}.${net_bit2}.255.254"
		
	elif [ ${net_bit1} -ge 128 ] && [ ${net_bit1} -le 191 ];then
		
		gateway="${net_bit1}.${net_bit2}.255.254"
	

	elif [ ${net_bit1} -ge 192 ] && [ ${net_bit1} -le 223 ];then

		gateway="${net_bit1}.${net_bit2}.255.254"
	else
		echo "IP is not TRUE!!!"
	fi
        ifdown $dev

echo "DEVICE=$dev
TYPE=Ethernet
BOOTPROTO=static
IPADDR=${host_ip}
NETMASK=${mask}
GATEWAY=${gateway}
ONBOOT=yes
USERCTL=no
" >/etc/sysconfig/network-scripts/ifcfg-${dev}

        service network restart
        ip a
else
	echo 'system error!'
	exit 1
fi
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值