|
def fetch(backend): #定义一个查功能的函数
result = [] #定义一个空列表
with open('ha.conf', 'r') as f: #以只读的方式打开ha.conf
flag = False #定义一个标示符,并赋值为Fals
for line in f:
if line.strip().startswith('backend') and line.strip() == "backend " + backend:
flag = True #如果文件匹配到文件中的行,将falg的值设置为True
continue #跳出本次循环继续
if flag and line.strip().startswith('backend'):
break #如果匹配到下一个‘backend’则终止此次循环
if flag and line.strip():
result.append(line.strip()) #如果flag为true并且当前匹配到的行不是空行,则将当前的行添加到列表中
return result
def add(backend, record): #思路1
result = fetch(backend)
if not result: # 无backend
with open('ha.conf', 'r')as old, open("new.conf", 'w') as new:
for line in old:
new.write(line)
new.write("\nbackend " + backend + "\n") #在最后添加backend和record
new.write(" " * 8 +record + "\n")
else: # 有backend
if record in result: #backend存在,record存在
# 记录record
pass
else: #backend存在,record不存在
result.append(record) #将record添加到内存中即result列表中
with open('ha.conf', 'r') as old, open('new.conf', 'w') as new:
continue_flag = False
for line in old:
if line.strip().startswith('backend') and line.strip() == "backend " + backend:
continue_flag = True # 定义一个标示符,并赋值为True
new.write(line) #将当前行写入new.conf
for temp in result:
new.write(" " * 8 + temp + "\n")
continue
if continue_flag and line.strip().startswith('backend'):
continue_flag = False #如果找到下一个backend,将conti_flag标记为false
if continue_flag:
pass
else:
new.write(line)
ret = fetch(" #查询
print(ret)
add('dayi.dayi123.org', "server 100.1.7.10 100.1.7.10 weight 20 maxconn 3000")#添加或修改 |
|
|