Skip to content

Commit fe59d3b

Browse files
author
魔幻云
authored
Create bondv1.sh
1 parent 27ee250 commit fe59d3b

File tree

1 file changed

+125
-0
lines changed

1 file changed

+125
-0
lines changed

bondv1.sh

+125
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,125 @@
1+
#!/bin/bash
2+
#-------bond setup---------------
3+
4+
function check()
5+
{
6+
ifconfig -a |awk -F '[ ]' '{print $1}' |grep -Ev "^$" |grep -Ev 'lo' | grep 'bond0'
7+
bond_status=`echo $?`
8+
if [ $bond_status -eq "0" ];then
9+
echo "已经配置bond!!!"
10+
exit 0
11+
else
12+
echo -e "\033[32m-----------检查网卡配置信息--------------\033[0m"
13+
ifconfig -a |awk -F '[ ]' '{print $1}' |grep -Ev "^$" |grep -Ev 'lo' >./ethernet.info
14+
touch ./sucess_ethernet.info
15+
sh /dev/null >./sucess_ethernet.info
16+
for i in `cat ./ethernet.info`
17+
do
18+
status=`ethtool $i |grep 'Link detected:' |awk -F ' ' '{print $3}'`
19+
if [ $status == 'yes' ];then
20+
echo $status "$i" "网卡已经开启"
21+
elif [ $status == 'no' ];then
22+
echo "'$i'网卡未开启"
23+
read -p "是否要开启网卡 y|n 直接回车等于 'n':" word
24+
if [ "$word" == 'y' ];then
25+
ifup $i
26+
ifup_status=`echo $?`
27+
if [ $ifup_status -eq '0' ];then
28+
echo $status "$i" '网卡开启正常'
29+
elif [ $ifup_status -ne '0' ];then
30+
echo "无网卡信息,需要重新配置后开启"
31+
cat ./ethinfo >>/etc/sysconfig/network-scripts/ifcfg-$i
32+
sed -i "s/eth1/$i/g" /etc/sysconfig/network-scripts/ifcfg-$i
33+
echo "网卡信息配置完成"
34+
ifup $i
35+
echo $status "----网卡未开启----稍等-----"
36+
echo "网卡开启成功!"
37+
fi
38+
elif [ -z "$word" -o "$word" == 'n' ];then
39+
echo -e "\033[31m网卡"$i"未启用!\033[0m"
40+
continue
41+
fi
42+
fi
43+
ethtool $i |grep 'Link detected: yes' >> /dev/null
44+
sucess_status=`echo $?`
45+
if [ $sucess_status -eq '0' ];then
46+
echo $i>>./sucess_ethernet.info
47+
elif [ $sucess_status -ne '0' ];then
48+
echo "该网卡未接线"
49+
fi
50+
done
51+
echo -e "\033[32m-----------完成检查网卡配置信息-OK-------------\033[0m"
52+
fi
53+
}
54+
55+
function bond()
56+
{
57+
echo -e "\033[32m----------开始配置bond-------------\033[0m"
58+
touch /etc/modprobe.d/bonding.conf
59+
echo 'alias bond0 bonding' >/etc/modprobe.d/bonding.conf
60+
echo -e "\033[32m---------所有网卡名称信息如下-------\033[0m"
61+
cat ./ethernet.info
62+
echo -e "\033[32m---------已经接线的网卡名称信息如下--------\033[0m"
63+
cat ./sucess_ethernet.info
64+
echo -e "\033[32m---------请确认需要绑定的网卡名称--------\033[0m"
65+
for n in `cat ./ethernet.info`
66+
do
67+
cat /etc/sysconfig/network-scripts/ifcfg-$n |grep '^IPADDR='
68+
echo -e "\033[31m注意:如果网卡包括所需要的IP,必须选择配置为bond信息,其他网卡根据实际情况选择!'$n'\033[0m"
69+
echo -e "\033[32m网卡名称为:'$n'\033[0m"
70+
read -p "是否要绑定该网卡 y|n 直接回车等于'n' :" eth
71+
if [ "$eth" == "y" ];then
72+
cat /etc/sysconfig/network-scripts/ifcfg-$n |grep '^IPADDR='
73+
status1=`echo $?`
74+
if [ $status1 -eq '0' ];then
75+
cp /etc/sysconfig/network-scripts/ifcfg-$n /root/ #ethernet profile info
76+
cp /etc/sysconfig/network-scripts/ifcfg-$n /etc/sysconfig/network-scripts/ifcfg-bond0 #bond info
77+
cat ./bondinfo >/etc/sysconfig/network-scripts/ifcfg-bond0
78+
cat /etc/sysconfig/network-scripts/ifcfg-$n |grep 'IPADDR=' >>/etc/sysconfig/network-scripts/ifcfg-bond0
79+
cat /etc/sysconfig/network-scripts/ifcfg-$n |grep 'NETMASK=' >>/etc/sysconfig/network-scripts/ifcfg-bond0
80+
cat /etc/sysconfig/network-scripts/ifcfg-$n |grep 'GATEWAY=' >>/etc/sysconfig/network-scripts/ifcfg-bond0
81+
cat ./eth_bond > /etc/sysconfig/network-scripts/ifcfg-$n
82+
sed -i "s/eth1/$n/g" /etc/sysconfig/network-scripts/ifcfg-$n
83+
echo -e "\033[32m主网卡bond信息配置完成!\033[0m"
84+
elif [ $status1 -ne '0' ];then
85+
cat ./eth_bond > /etc/sysconfig/network-scripts/ifcfg-$n
86+
sed -i "s/eth1/$n/g" /etc/sysconfig/network-scripts/ifcfg-$n
87+
echo -e "\033[32m配置该网卡有关bond信息完成\033[0m"
88+
fi
89+
elif [ "$eth" == "n" -o -z "$eth" ];then
90+
echo "此'$n'网卡不做聚合"
91+
continue
92+
fi
93+
done
94+
echo -e "\033[32m-----------完成bond配置信息-OK-------------\033[0m"
95+
}
96+
97+
function set_info_check()
98+
{
99+
echo -e "\033[32m-----------检查所有网卡包括(bond)配置信息-OK-------------\033[0m"
100+
echo "bond0网卡配置信息"
101+
cat /etc/sysconfig/network-scripts/ifcfg-bond0
102+
for n in `cat ./ethernet.info`
103+
do
104+
echo "网卡"$n"配置信息"
105+
cat /etc/sysconfig/network-scripts/ifcfg-$n
106+
done
107+
echo -e "\033[32m-----------完成检查所有的网卡配置信息-OK-------------\033[0m"
108+
}
109+
check
110+
echo "等待3秒执行bond配置"
111+
sleep 3
112+
bond
113+
echo "等待3秒执行配置完成后检查"
114+
sleep 3
115+
set_info_check
116+
echo "等待5秒重启网卡"
117+
sleep 5
118+
read -p "确定重启网卡 y|n 直接回车等于选择 'n'" eth_restart
119+
if [ "$eth_restart" == "y" ];then
120+
service network restart
121+
echo -e "\033[32m-----------重启网卡成功-OK-------------\033[0m"
122+
elif [ -z "$eth_restart" -o "$eth_restart" == "n" ];then
123+
echo "退出网卡重启"
124+
exit 0
125+
fi

0 commit comments

Comments
 (0)