Haproxy--脚本实现不重启haproxy服务上下线server

1. socat 安装

yum install socat -y

2. 脚本配置

2.1 /root/haproxy-weight.sh

#!/bin/bash
# haproxy 自动上下线
#命令格式:/root/haproxy-weight.sh [up|down] {servername}
. /etc/init.d/functions
case $1 in
up)
    for i in /var/lib/haproxy/haproxy.sock?;do echo "set weight  back_web/$2 1"|socat stdio /var/lib/haproxy/haproxy.sock$i;done &>/dev/null
    [ $? -eq 0 ] && action "$2 is up"
    ;;
down)
    for i in /var/lib/haproxy/haproxy.sock?;do echo "set weight  back_web/$2 0"|socat stdio /var/lib/haproxy/haproxy.sock$i;done &>/dev/null
    [ $? -eq 0 ] && action "$2 is down"
    ;;
*)
    echo -e "\033[41;37;1;5m格式错误,请按正确格式输入!\033[0m"
    echo -e "\033[32;1m命令格式:haproxy-weight [up|down] {servername}\033[0m"
;;
esac

2.2 socket定义

socket文件由/etc/haproxy/haproxy.cfg的global定义

global
	....
    stats socket /var/lib/haproxy/haproxy.sock1 mode 600 level admin process 1
    stats socket /var/lib/haproxy/haproxy.sock2 mode 600 level admin process 2
    stats socket /var/lib/haproxy/haproxy.sock3 mode 600 level admin process 3
    stats socket /var/lib/haproxy/haproxy.sock4 mode 600 level admin process 4
    stats socket /var/lib/haproxy/haproxy.sock5 mode 600 level admin process 5

3.使用脚本实现通过socket上下线服务

3.1 使用脚本上下线

/root/haproxy-weight.sh down 192.168.31.17
在这里插入图片描述

3.2 查看效果

3.2.1 down

在这里插入图片描述
在这里插入图片描述

3.2.2 up

在这里插入图片描述
在这里插入图片描述

4.注意点

backend的配置中,将server name直接写成ip地址,这样上下线的时候只需要输入对应ip即可.无需再去查看对应的server名.

backend back_web
    server 192.168.31.17 192.168.31.17:80 check inter 3000 fall 2 rise 5
    server 192.168.31.27 192.168.31.27:80 check inter 3000 fall 2 rise 5
    server back1 192.168.31.47:8081 backup

Guess you like

Origin blog.csdn.net/qq_29974229/article/details/120842343