修改haproxy配置文件

HAproxy配置文件操作:

1. 根据用户输入输出对应的backend下的server信息

2. 可添加backend 和sever信息

3. 可修改backend 和sever信息

4. 可删除backend 和sever信息

5. 操作配置文件前进行备份

6 添加server信息时,如果ip已经存在则修改;如果backend不存在则创建;若信息与已有信息重复则不操作

配置文件 参考 http://www.cnblogs.com/alex3714/articles/5717620.html

配置文件如下:

global
log 127.0.0.1 local2
daemon
maxconn 256
log 127.0.0.1 local2 info
defaults
log global
mode http
timeout connect 5000ms
timeout client 50000ms
timeout server 50000ms
option dontlognull

listen stats :8888
stats enable
stats uri /admin
stats auth admin:1234

frontend oldboy.org
bind 0.0.0.0:80
option httplog
option httpclose
option forwardfor
log global
acl www hdr_reg(host) -i www.oldboy.org
use_backend www.oldboy.org if www

backend www.oldboy.org
server 100.1.7.9 weight 20 maxconn 3000


代码如下:
f = open("haproxy","r",encoding="gbk")
f_new = open("haproxy_new","w",encoding="gbk")
#将文件内容转换为一个列表,并定义一个变量。
b = f.readlines()
#定义三个选项:
option = ("1、请输入搜索的地址:","2、请输入增加的内容:","3、请输入删除的内容:")
#打印三个选项:
for i in option:
    print(i)
choice = input("请选择操作方式:序列号>>>")
#如果选择1,则进入查找选项。
if choice == "1" :
    data = input("请输入搜索地址:")
    #利用字符串拼接,定义一个变量,-----backend所在的行。
    address = "backend %s\n"%data
    if address in b:
        #利用列表的下标来定位位置,然后通过下标打印内容。
        index_add = b.index(address)
        print(b[index_add],b[index_add+1])
    if address not in b:
        print("您查找的内容不存在")
#如果选择2,则进入增加内容选项:
if choice =="2":
    data = input("输入增加内容:")
    data_eval = eval(data)
    #通过列表计数器来判断输入的内容是否在列表中存在,如果计数器为0则不存在,如果计数器不为0则存在。
    #不存在则添加,存在则不添加。
    f_find = b.count("backend %s\n"%data_eval["backend"])
    #如果backend后的内容在文件中不能找到则新增。
    if f_find == 0:
        for line in b:
            f_new.write(line)
       #  for f_line2 in f:
       # #将输入的内容通过字符串拼接的形式写入文件中
        f_new.write("\nbackend  ")
        f_new.write(data_eval["backend"])
        f_new.write("\n        server %s weight %s maxconn %s"\
                    %(data_eval["record"]["server"],data_eval["record"]["weight"]\
                    ,data_eval["record"]["maxconn"]))
    #如果backend后的内容在文件中能找到则不执行任何操作。
    if f_find != 0:
        print("您添加的内容已经存在")
#如果选择3,则进入删除内容选项:
if choice == "3":
    data = input("输入删除内容:")
    data_eval = eval(data)
    #通过列表计数器来判断输入的内容是否在列表中存在,如果计数器为0则不存在,如果计数器不为0则存在。
    #不存在则添加,存在则不添加。
    f_find = b.count("backend %s\n"%data_eval["backend"])
    #如果backend后的内容在文件中不能找到则新增。
    if f_find != 0:
            b_index=b.index("backend www.oldboy.org\n")
            b.pop(b_index)
            b.pop(b_index)
            for line in b:
                f_new.write(line)
    #如果backend后的内容在文件中不能找到则不执行任何操作。
    if f_find == 0:
        print("您输入的内容文件中不存在")
f.close()
f_new.close()

 

转载于:https://www.cnblogs.com/1dreams/p/6880205.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值