Shell脚本实战22-LVS节点健康检查及管理脚本

1. 需求

请在LVS负载均衡主节点上,模拟keepalived健康检查功能管理LVS节点,当节点挂掉时从服务器池中将其剔除,好了后再将其加到服务器池中来。

2. 参考脚本

参考脚本如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#!/bin/bash
IPVSADM=/sbin/ipvsadm
VIP=10.0.0.3
PORT=80
RIPS=(
10.0.0.7
10.0.0.8
)
while true
do
for ((i=0; i<${#RIPS[*]}; i++))
do
PORT_COUNT=`nmap ${RIPS[$i]} -p $PORT | grep open | wc -l`
#<==检测节点,是否正常
if [ $PORT_COUNT -ne 1 ] #<==如果节点不通
then
if [ `$IPVSADM -Ln | grep ${RIPS[$i]} | wc -l` -ne 0 ]
then
$IPVSADM -d -t $VIP:$PORT -r ${RIPS[$i]}:$PORT > /dev/null 2>&1
#<==删除不正常的节点
fi
else #<==如果节点正常
if [ `$IPVSADM -Ln | grep ${RIPS[$i]} | wc -l` -eq 0 ]
#<==如果节点池中没有RS
then
$IPVSADM -a -t $VIP:$PORT -r ${RIPS[$i]}:PORT > /dev/null 2>&1
#<==添加对应的节点
fi
fi
done
sleep 5
done

0%