python 修改haproxy配置文件(查,增,删)

-python 修改haproxy配置文件

1.haproxy文件

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

2.代码需求:
a.可查询haproxy配置文件
b.可增加相关网址及记录
c.可删除相关网址及记录

3. 功能实现:

a.输入相关网址,可查询相关记录信息;
b.按照字典样式输入网址及记录信息,可在haproxy文件中增加;
c.输入相关网址,可删除相关记录信息;

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()
C:\Users\Lcj\Anaconda3\python.exe D:/exercise/1/day2/exercise(haproxy).py
1、请输入搜索的地址:
2、请输入增加的内容:
3、请输入删除的内容:
请选择操作方式:序列号>>>1
请输入搜索地址:www.oldboy.org
backend www.oldboy.org
         server 100.1.7.9 weight 20 maxconn 3000

C:\Users\Lcj\Anaconda3\python.exe D:/exercise/1/day2/exercise(haproxy).py
1、请输入搜索的地址:
2、请输入增加的内容:
3、请输入删除的内容:
请选择操作方式:序列号>>>2
输入增加内容:{'backend': 'www.baidu.com','record': {'server': '100.1.7.8','weight': 20,'maxconn': 3000}}

Process finished with exit code 0

C:\Users\Lcj\Anaconda3\python.exe D:/exercise/1/day2/exercise(haproxy).py
1、请输入搜索的地址:
2、请输入增加的内容:
3、请输入删除的内容:
请选择操作方式:序列号>>>3
输入删除内容:{'backend':'www.oldboy.org'}

猜你喜欢

转载自blog.csdn.net/weixin_43730955/article/details/84654129