Day3作业:ha_proxy配置文件修改
2016-05-23 23:33
351 查看
不废话,上代码
readme:
流程图:
View Code
readme:
# Auther:ccorz Mail:ccniubi@163.com Blog:http://www.cnblogs.com/ccorz/ # GitHub:https://github.com/ccorzorz ha_proxy配置文件修改程序 1.查询时输入域名即可查询,显示域名相关的backend配置 2.删除时输入域名,即可删除包括域名以及配置服务器信息的相关内容;如相关域名信息,会提示用户,不改动文件 3.修改时需要输入列表信息,列表中需要包括backend的域名信息,以及包含weight、server、maxconn的record列表 3.1 修改需输入内容举例:{"backend": "test.oldboy.org","record":{"server": "100.1.7.9","weight": 20,"maxconn": 30}} 3.2 程序会自动判断输入的格式是否正确,如果不正确,会提醒用户重新输入,直至正确格式 3.3 程序会自动判断域名信息是否存在,如存在,增加服务器信息;如不存在,追加至配置文件结尾 3.4 程序会自动判断用户想增加的服务器信息是否与已存在的配置重叠,如存在,提示用户,不修改文件;如不存在,在域名相关信息后追加 4.程序会自动备份修改之前的文件,后缀为修改时间 5.本程序有日志记录,以便管理员查询修改记录
流程图:
#!/usr/bin/env python # -*- coding:utf-8 -*- def fetch(backend): # backend = "www.oldboy.org" result = [] with open('ha.conf', 'r', encoding='utf-8') as f: flag = False for line in f: if line.strip().startswith("backend") and line.strip() == "backend " + backend: flag = True continue if flag and line.strip().startswith("backend"): flag = False break if 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) if not record_list: # 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") new.write(" " * 8 + record + "\n") else: # backend存在 if record in record_list: # record已经存在 # import shutil # shutil.copy("ha.conf", 'new.conf') pass else: # backend存在,record不存在 record_list.append(record) with open('ha.conf', 'r') as old, open('new.conf', 'w') as new: flag = False for line in old: if line.strip().startswith("backend") and line.strip() == "backend " + backend: flag = True new.write(line) for new_line in record_list: new.write(" "*8 + new_line + "\n" ) continue if flag and line.strip().startswith("backend"): flag = False new.write(line) continue if line.strip() and not flag: new.write(line) bk = "www.oldboy.org" rd = "server 100.1.7.49 100.1.7.49 weight 20 maxconn 30" add(bk, rd) # s = "[11,22,33,44,5, 66]" # s = '{"k1":"v1"}' # print(type(s),s) # # import json # n = json.loads(s) # 将一个字符串,转换成python的基本数据类型; 注意:字符串形式的字典'{"k1":"v1"}'内部的字符串必须是 双引号 # print(type(n), n) # import json # r = input("input:") # dic = json.loads(r) # bk = dic['backend'] # rd = "server %s %s weight %d maxconn %d" %(dic['record']['server'], # dic['record']['server'], # dic['record']['weight'], # dic['record']['maxconn'])
View Code
相关文章推荐
- Zookeeper 安装和配置
- 四元数和旋转轴及旋转角度之间的转换理解实例
- python 练习 1
- Android必需了解的东西
- 采用发消息的形式查看网络图片
- Java 基础入门随笔(11) JavaSE版——继承、覆盖、抽象类
- 汉诺塔递归解决方法经典分析
- Bestcoder round#34 解题报告
- ROS探索(2)——仿真器的搭建
- request和response对象
- android插入SQLite中文乱码问题
- 4-Bom&Dom总结篇
- windows,linux,mac生成ssh public key 和 private key
- Android Architecture(Is Activity God?)
- 2016春季练习——矩阵快速幂
- Eclipse_配置文件导出
- 一只Linux小白,啊哈哈。。。以后就将自己的学习心得与大家分享啦!希望大家可以指出我的错误与不足之处
- 大学毕业4年-回顾和总结(9)-股权投资1年,给自己一个答卷(好狗狗、皇包车、职业梦、比呀比、易途8)(创业有风险,投资需谨慎)
- 大学毕业4年-回顾和总结(9)-股权投资1年,给自己一个答卷(好狗狗、皇包车、职业梦、比呀比、易途8)(创业有风险,投资需谨慎)
- c++作业-6