[root@lb03 scripts]# cat lv_manager.sh
#!/bin/bash#定义只能是root用户执行
if [ $UID -ne ];then
echo "permission deny 必须root用户执行"
exitfi
#文件存在就加载文件
[ -f /etc/init.d/functions ] && . /etc/init.d/functions#定义绑定的虚拟ipvip_netmask=10.0.0.13/vip=10.0.0.3service_addr=10.0.0.13:
wbs=(
10.0.0.17:
10.0.0.18:
)count_pkg=$(rpm -qa|egrep ipvsadm|wc -l)function start () {
#检查虚拟IP个数,IP检测和ipvsadm -ln两种方法检查
count_vip_check=$(ip a|grep 10.0.0.1[]|wc -l)
count_vip_check2=$(ipvsadm -ln|grep "10.0.0.1[3]:80"|wc -l)
if [ ${count_vip_check} -eq -o ${count_vip_check2} -eq ]
then
echo "${count_vip_check} 虚拟IP已经存在"
else
ip addr add 10.0.0.13/ dev eth0
ipvsadm -C
ipvsadm --set
ipvsadm -A -t 10.0.0.13: -s wrr -p
fi
#管理工具ipvsadm不存在就安装
[ ${count_pkg} -eq ] && yum install ipvsadm -y >/dev/null #先检查一下网址通不通
for i in ${wbs[@]}
do web_code=$(curl -o /dev/null -w "%{http_code}" -s $i)
if [ "${web_code}" == "" ]
then
echo "${i} is ok"
ipvsadm -a -t 10.0.0.13: -r $i -g -w else
echo "添加的服务 ${i} 没有打开" fi done}stop () { count_vip_check=$(ip a|grep 10.0.0.1[]|wc -l)
if [ ${count_vip_check} -eq ]
then echo "虚拟IP 不存在"
exit
else
ip addr del 10.0.0.13/ dev eth0
ipvsadm -C
fi }case "$1" in start) start
;;stop) stop
;;restart) stop
sleep
start
;;*)
echo "Usage {start|stop|restart}"
;;esac
================================
下面是改过的比上面好
[root@lb04 scripts]# cat lv_manager.sh
#!/bin/bash#定义只能是root用户执行
if [ $UID -ne ];then
echo "permission deny 必须root用户执行"
exitfi
#文件存在就加载文件
[ -f /etc/init.d/functions ] && . /etc/init.d/functions#定义绑定的虚拟ipvip_netmask=10.0.0.13/service_addr=10.0.0.13:
wbs=(
10.0.0.17:
10.0.0.18:
)count_pkg=$(rpm -qa|egrep ipvsadm|wc -l)function start () {
#检查虚拟IP个数,IP检测和ipvsadm -ln两种方法检查
count_vip_check=$(ip a|grep 10.0.0.1[]|wc -l)
count_vip_check2=$(ipvsadm -ln|grep "10.0.0.1[3]:80"|wc -l)
if [ ${count_vip_check} -eq -o ${count_vip_check2} -eq ]
then
echo "${count_vip_check} 本地虚拟IP已经存在,将退出" && exit
else
check_count=$(nmap 10.0.0.13|grep "Host is up"|wc -l)
[ ${check_count} -gt ] && echo "远端 13 ip开启,将退出" && exit
ip addr add 10.0.0.13/ dev eth0
ipvsadm -C
ipvsadm --set
ipvsadm -A -t 10.0.0.13: -s wrr -p
fi
#管理工具ipvsadm不存在就安装
[ ${count_pkg} -eq ] && yum install ipvsadm -y >/dev/null #先检查一下网址通不通
for i in ${wbs[@]}
do web_code=$(curl -o /dev/null -w "%{http_code}" -s $i)
if [ "${web_code}" == "" ]
then
echo "${i} is ok"
ipvsadm -a -t 10.0.0.13: -r $i -g -w else
echo "添加的服务 ${i} 没有打开" fi done}stop () { count_vip_check=$(ip a|grep 10.0.0.1[]|wc -l)
if [ ${count_vip_check} -eq ]
then echo "虚拟IP 不存在"
exit
else
ip addr del 10.0.0.13/ dev eth0
ipvsadm -C
fi }case "$1" in start) start
;;stop) stop
;;restart) stop
sleep
start
;;*)
echo "Usage {start|stop|restart}"
;;esac