- bonding status check script
-
[root@yj26-ovstest1 ~]
# cat bonding-check-test.sh
#!/bin/bash
BONDING_CHECK_IP=$@
PING_CHECK() {
for
F
in
$BONDING_CHECK_IP
do
N=1
while
[ $N -
ge
1 ]
do
ping
$F -w 1 -c 1 -q >
/dev/null
if
[ $? != 0 ] ;
then
let
N+=1
echo
Not pingable $F
else
N=0
fi
done
done
}
if
[ -d
/proc/net/bonding/
] ;
then
IFCFGFILE=`
ls
/etc/sysconfig/network-scripts/ifcfg-
*`
for
T
in
$IFCFGFILE
do
source
$T
if
[
"${SLAVE}"
=
"yes"
-a -n
"${MASTER}"
];
then
echo
"-${DEVICE}"
>
/sys/class/net/
${MASTER}
/bonding/slaves
2>
/dev/null
echo
"bonding master ${MASTER}'s slave $DEVICE out"
PING_CHECK
sleep
1
echo
"+${DEVICE}"
>
/sys/class/net/
${MASTER}
/bonding/slaves
2>
/dev/null
echo
"bonding master ${MASTER}'s slave $DEVICE in"
unset
SLAVE DEVICE MASTER
fi
done
fi
which
ovs-vsctl >
/dev/null
if
[ $? == 0 ] ;
then
BONDMASTERS=`ovs-appctl bond
/list
|
tail
-n +2 |
awk
'{print $1}'
`
for
i
in
$BONDMASTERS
do
echo
$i
for
I
in
`ovs-appctl bond
/show
$i |
grep
^slave|
awk
'{print $2}'
`
do
BOND_INTERFACE=${I/:}
ip link
set
down $BOND_INTERFACE
echo
"ovs bonding master ${i}'s slave $BOND_INTERFACE down"
PING_CHECK
sleep
1
ip link
set
up $BOND_INTERFACE
echo
"ovs bonding master ${i}'s slave $BOND_INTERFACE up"
done
done
fi
-
- test
[root@yj26-ovstest2 ~]
# bash bonding-check-test.sh 1.1.1.1 3.3.3.3 8.8.8.8
bonding master bondtest's slave eth6 out
Not pingable 3.3.3.3
Not pingable 3.3.3.3
Not pingable 3.3.3.3
Not pingable 3.3.3.3
Not pingable 3.3.3.3
Not pingable 3.3.3.3
Not pingable 3.3.3.3
Not pingable 3.3.3.3
bonding master bondtest's slave eth6
in
bonding master bondtest's slave eth7 out
bonding master bondtest's slave eth7
in
bond-testbr
ovs bonding master bond-testbr's slave eth3 down
ovs bonding master bond-testbr's slave eth3 up
ovs bonding master bond-testbr's slave eth4 down
ovs bonding master bond-testbr's slave eth4 up
bond-testbr2
ovs bonding master bond-testbr2's slave eth1 down
ovs bonding master bond-testbr2's slave eth1 up
ovs bonding master bond-testbr2's slave eth2 down
ovs bonding master bond-testbr2's slave eth2 up
[root@yj26-ovstest2 ~]
# ip -4 -o a
1: lo inet 127.0.0.1
/8
scope host lo\ valid_lft forever preferred_lft forever
2: eth0 inet 10.26.1.212
/24
brd 10.26.1.255 scope global eth0\ valid_lft forever preferred_lft forever
10: testbr inet 10.26.2.22
/24
scope global testbr\ valid_lft forever preferred_lft forever
13: bondtest inet 3.3.3.4
/24
scope global bondtest\ valid_lft forever preferred_lft forever
- interface 1개씩 내린 후 ping이 성공 할때까지 보내는 script 임.
bonding status check script
댓글 남기기