#!/bin/bash # Author: create by Linux_Boy # Description: lvs 监控状态检查 VIP=192.168.138.125 PORT=80 RIP=( 192.168.138.21 192.168.138.22 ) while true do for ip in $RIP do PORT_COUNT=`namp $ip -P $PORT|grep open|wc -l` if [[ $PORT_COUNT -ne 1 ]]; then # 判断RIP是否存在 ipvsadm -Ln,若存在,则删除RIP if [[ `ipvsadm -Ln|grep $ip|wc -l` -ne 0 ]]; then ipvsadm -d -t $VIP:$PORT -r $ip:$PORT fi else # 如果RIP业务正常,但是ipvsadm -Ln不存在,则添加RIP if [[ `ipvsadm -Ln|grep $ip|wc -l` -eq 0 ]]; then ipvsadm -a -t $VIP:$PORT -r $ip:$PORT -g -w 1 fi fi done sleep 10 done
# 脚本缺点
# 有时候服务假死但是端口依然存在,此时服务已不能提供正常服务,因此不建议使用nmap命令检查,建议使用curl、wget命令健康检查,如心跳