1. 根据用户输入输出对应的backend下的server信息
2. 可添加backend 和sever信息
3. 可修改backend 和sever信息
4. 可删除backend 和sever信息
5. 操作配置文件前进行备份
6 添加server信息时,如果ip已经存在则修改;如果backend不存在则创建;若信息与已有信息重复则不操作
# -*- coding: UTF-8 -*- # Author: hanly import sys,time #查询函数 def func_search(index,file): list_list = [] with open(file) as file_search: for line in file_search: if 'backend ' in line and line.startswith('b'): list_backend = line.partition(' ') list_list.append(list_backend[2]) file_search.seek(0) for line in file_search: if list_list[index-1] in line and line.startswith('b'): print line,file_search.next() return list_list[index-1] #添加信息 def func_add(file): add_son_type = 0 backend_add = raw_input('请输入需要添加的backend信息:') server_add = raw_input('请输入需要添加的server信息:') #user_add = eval(user_add) with open(file) as file_old,open('file.bak','w') as file_new: for line in file_old: file_new.write(line) if backend_add in line and line.startswith('b'): file_new.write('\n \t') file_new.write('server\t') file_new.write(server_add) file_new.write('\n') add_son_type = 1 elif server_add in line: print '该条信息已存在,请勿重复添加' return False if add_son_type ==0: file_new.write('\n') file_new.write('backend ') file_new.write(backend_add) file_new.write('\n\t\t') file_new.write('server\t') file_new.write(server_add) return True def func_change(file): pass def func_delete(delete_type,file): delete_type = 0 server_contect = func_search(delete_type, file) with open(file) as f,open('file_delete.bak','w') as fb: for line in f: if server_contect in line: delete_type = 1 continue if delete_type == 1 and (not line.startswith('b')): continue fb.write(line) if delete_type == 0: return False return True #退出 def func_exit(): for i in range(10): sys.stdout.write('#') sys.stdout.flush() time.sleep(0.1) #判断输入是否为数字 def func_isdigit(usrinput): if usrinput.isdigit(): return int(usrinput) else: return False #主函数 file = 'haproxy2' print '欢迎来到Haproxy文件配置平台'.center(50,'*') print 'backend编码信息如下:' list_main = [] with open(file) as file_old: for line in file_old: if 'backend' in line and line.startswith('b'): list_part = line.partition(' ') list_main.append(list_part[2]) for index,context in enumerate(list_main): print index,context print '''操作清单如下: # 1、查询backend和server信息 # 2、添加backend和server信息 # 3、修改backend和server信息 # 4、删除backend和server信息 # 5、退出''' while True: user_input = raw_input('请输入需要操作的数字编号:') yes_type = func_isdigit(user_input) if yes_type == 1: user_search = raw_input('请输入需要查询的backend编号:') yes_search_type = func_isdigit(user_search) if not yes_search_type or yes_search_type>len(list_main): print '输入有误,请重新输入!' else: func_search(yes_search_type, file) # 查询函数 elif yes_type == 2: add_type = func_add(file) #添加函数 if add_type: print '添加成功' else: print '添加失败' elif yes_type == 3: func_change(file) #修改函数 elif yes_type == 4: user_delete = raw_input('请输入需要删除的backend编号:') delete_type= func_isdigit(user_delete) if not delete_type or delete_type>len(list_main): print '输入有误,请重新输入!' else: if func_delete(delete_type,file): #删除函数 print '删除成功' else: print '删除失败' elif yes_type == 5: print '即将退出程序' func_exit() #退出进度条 exit() else: print '输入编码有误,请重新输入!' continue
浙公网安备 33010602011771号