标签:ret name 存在 0.0.0.0 [] etc flag ken listen
1、文件内容
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 100.1.7.9 weight 20 maxconn 3000 server 100.1.7.19 100.1.7.19 weight 40 maxconn 4000 backend buy.oldboy.org server 100.1.7.90 100.1.7.90 weight 20 maxconn 3000
2、代码实现
filename = ‘text_file\haproxy‘
def fetch(backend):
‘‘‘获取文件数据‘‘‘
with open(filename, ‘r‘) as f:
result = []
flag = False
for line in f:
if line.strip().startswith(‘backend‘) and line.strip() == ‘backend ‘ + backend:
flag = True
continue
elif flag and line.startswith(‘backend‘):
break
elif flag and line.strip():
result.append(line.strip())
return result
#测试
ret = fetch("www.oldboy.org")
print(ret)
def add(backend,record):
‘‘‘增加文件数据‘‘‘
record_list = fetch(backend)
#先检查backend是否存在
if not record_list:
#backend不存在
with open(filename,‘r‘) as old,open(r‘text_file\new‘,‘w‘) as new:
for line in old:
new.write(line)
new.write("\n\nbackend " + backend)
new.write("\n" + " "*8 + record)
else:
#backend存在,判断记录是否存在
if record in record_list:
#record存在
print("记录已存在")
else:
#backend存在,record不存在
record_list.append(record)
with open(filename,‘r‘) as old,open(r‘text_file\new2‘,‘w‘) as new2:
flag = False
for line in old:
if line.strip().startswith(‘backend‘) and line.strip() == ‘backend ‘ + backend:
#找到backend www.oldboy.org
flag = True
new2.write(line)#把backend行加入新文件
for new_record in record_list:
#把record列表中的元素添加到新文件
new2.write(" " * 8 + new_record + "\n")
continue
if flag and line.startswith(‘backend‘):
flag = False
new2.write("\n" + line)
continue
if flag == False:
new2.write(line)
#测试
bk = "www.oldboy.org"
rd = "server 34.1.7.25 100.1.7.44 weight 99 maxconn 67"
add(bk,rd)
bk = "test.oldboy.org"
rd = "server 50.1.7.55 100.1.7.45 weight 99 maxconn 89"
add(bk,rd)
def delete(backend,record):
‘‘‘删除文件数据‘‘‘
#先判断backend是否存在
record_list = fetch(backend)
if not record_list:
print("记录不存在")
else:
with open(filename,‘r‘) as f,open(r‘text_file\new3‘,‘w‘) as new3:
if record in record_list:
for line in f:
if line.strip() == record:
continue
else:
new3.write(line)
#测试
bk = "www.oldboy.org"
rd = "server 100.1.7.9 100.1.7.9 weight 20 maxconn 3000"
delete(bk,rd)
标签:ret name 存在 0.0.0.0 [] etc flag ken listen
原文地址:https://www.cnblogs.com/charliedaifu/p/10090220.html