Linux bond配置脚本

作者: admin 分类: Linux,Shell脚本 发布时间: 2024-08-13 15:29 浏览:322 次    
#!/bin/bash

###################################################################
# File Name: network_bond.sh
# Author: xunyin
# E-mail: lnhxzwb@126.com
# Created Time: 2024年08月13日
#==================================================================
#声明:本程序基于CENTOS7.X系统测试,其它系统请根据实际修改测试后使用
###################################################################

# 定义网络接口名称
net_name1='eth0'
net_name2='eth1'
bond_name='bond1'

# 定义数组  
nets=("$net_name1" "$net_name2")

# 定义路径
path='/etc/sysconfig/network-scripts'

# IP地址
ip='192.168.0.11'
mask='255.255.255.192'
gw='192.168.0.1'

# Bond 模式,根据需要选择相应模式:mode=0(balance-rr),mode=1(active-backup), mode=2(balance-xor),mode=3(broadcast),mode=4(802.3ad),mode=5(balance-tlb) 等
BOND_MODE=1
# 链路监控频率,单位为毫秒
BOND_MIIMON="100"
# 判定链路失败前的延迟,单位为毫秒      
BOND_DOWNDELAY="200"
# 判定链路恢复前的延迟,单位为毫秒  
BOND_UPDELAY="200" 

# bond接口配置
bond_add()
{
cat >${path}/ifcfg-${bond_name} << EOF
NAME="${bond_name}"
DEVICE="${bond_name}"
TYPE="Bond"
BOOTPROTO="none"
IPADDR=${ip}
NETMASK=${mask}
GATEWAY=${gw}
ONBOOT="yes"
BONDING_OPTS="mode=${BOND_MODE} miimon=${BOND_MIIMON} downdelay=${BOND_DOWNDELAY} updelay=${BOND_UPDELAY}" 
EOF
}


# 从属接口配置
network_conf()
{
for net in "${nets[@]}"
do
# 判断接口设备是否存在
net_dev=$(ip addr show ${net} | wc -l)
if [ "$net_dev" -ge 2 ];then
# 配置接口
cat >${path}/ifcfg-${net} << EOF
DEVICE=${net}
NMAE=${net}
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=none
DEFROUTE=yes
MASTER=${bond_name}          
SLAVE=yes
EOF
else
echo "${net}设备不存在,请检查"
exit 0
fi
done
}

main()
{
bond_check=$(lsmod | grep bonding | wc -l)
if [ $bond_check -ge 1 ];then
bond_add
network_conf
else
echo "bond 模板未加载,请检查!"
modprobe --first-time bonding
bond_add
network_conf
fi
#重启网卡使配置生效
systemctl restart network 
}

main

温馨提示:如无特殊说明,本站文章均为作者原创,转载时请注明出处及相应链接!

发表评论