2016/09/12
1. Python作业
HAproxy配置文件操作 -> 完成
def fetch(backend):result = []with open('ha.conf', 'r', encoding='utf-8') as f:flag = Falsefor line in f:if line.strip().startswith('backend') and line.strip() == 'backend ' + backend:flag = Truecontinueif flag and line.strip().startswith('backend'):flag = Falsebreakif flag and line.strip():result.append(line.strip())return resultdef add(backend, record):record_list = fetch(backend)#print(record_list)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('\n\nbackend ' + backend + '\n')new.write(' ' * 8 + record + '\n')else: # backend存在if record in record_list: # record已经存在import shutilshutil.copy('ha.conf', 'new.conf')else: # backend存在,record不存在rd_list = record.split()ip_str = ' '.join(rd_list[1:3])#print(ip_str)record_str = ''.join(record_list)#print(record_str)if ip_str not in record_str: # backend存在,record中sever中ip不存在:#print(record_list)record_list.append(record)with open('ha.conf', 'r') as old, open('new.conf', 'w') as new:flag = Falsefor line in old:if line.strip().startswith('backend') and line.strip() == 'backend ' + backend:flag = Truenew.write('\n' + line)for new_line in record_list:new.write(' ' * 8 + new_line + '\n')new.write('\n')continueif flag == True and line.strip().startswith('backend'):flag = Falsenew.write(line)continueif not flag and line.strip():new.write(line)else: # backend存在,record中sever中ip存在:#print(record_list)for i in record_list:if ip_str in i:record_list.remove(i)record_list.append(record)with open('ha.conf', 'r') as old, open('new.conf', 'w') as new:flag = Falsefor line in old:if line.strip().startswith('backend') and line.strip() == 'backend ' + backend:flag = Truenew.write('\n' + line)for new_line in record_list:new.write(' ' * 8 + new_line + '\n')new.write('\n')continueif flag == True and line.strip().startswith('backend'):flag = Falsenew.write(line)continueif not flag and line.strip():new.write(line)import shutilshutil.copy('new.conf','ha.conf')def modify_1(backend, new_backend): # 仅更改backendrecord_list = fetch(backend)if not record_list:print('backend not exist')else:with open('ha.conf', 'r') as old, open('new.conf', 'w') as new:flag = Falsefor line in old:if line.strip().startswith('backend') and line.strip() == 'backend ' + backend:flag = Truenew.write('\nbackend ' + new_backend + '\n')for new_line in record_list:new.write(' ' * 8 + new_line + '\n')new.write('\n')continueif flag == True and line.strip().startswith('backend'):flag = Falsenew.write(line)continueif not flag and line.strip():new.write(line)shutil.copy('new.conf', 'ha.conf')def modify_2(backend, record, new_backend, new_record): # 更改backend下的recordrecord_list = fetch(backend)if not record_list:print('backend not exist')elif record not in record_list:print('record not exist')else:for i in record_list:if record == i:record_list.remove(i)record_list.append(new_record)with open('ha.conf', 'r') as old, open('new.conf', 'w') as new:flag = Falsefor line in old:if line.strip().startswith('backend') and line.strip() == 'backend ' + backend:flag = Truenew.write('\nbackend ' + new_backend + '\n')for new_line in record_list:new.write(' ' * 8 + new_line + '\n')new.write('\n')continueif flag == True and line.strip().startswith('backend'):flag = Falsenew.write(line)continueif not flag and line.strip():new.write(line)shutil.copy('new.conf', 'ha.conf')def delete(backend, record):record_list = fetch(backend)if not record_list:print('backend not exist')elif record not in record_list:print('record not exist')else:with open('ha.conf', 'r') as old, open('new.conf', 'w') as new:if len(record_list) > 1: # 不删backend,只删一项recordfor i in record_list:if i == record:record_list.remove(i)flag = Falsefor line in old:if line.strip().startswith('backend') and line.strip() == 'backend ' + backend:flag = Truenew.write('\n' + line)for new_line in record_list:new.write(' ' * 8 + new_line + '\n')new.write('\n')continueif flag == True and line.strip().startswith('backend'):flag = Falsenew.write(line)continueif not flag and line.strip():new.write(line)else: # backend和record都删for i in record_list:if i == record:record_list.remove(i)flag = Falsefor line in old:if line.strip().startswith('backend') and line.strip() == 'backend ' + backend:flag = True#new.write('\n' + line)for new_line in record_list:new.write(' ' * 8 + new_line + '\n')new.write('\n')continueif flag == True and line.strip().startswith('backend'):flag = Falsenew.write(line)continueif not flag and line.strip():new.write(line)shutil.copy('new.conf', 'ha.conf')# bk = 'www.oldboy.org'
# bk2 = 'test.oldboy.org'
# rd = 'server 100.1.7.9 100.1.7.9 weight 20 maxconn 3000'
# rd2 = 'server 100.1.7.1 100.1.7.1 weight 10 maxconn 1000'
#
# modify_2(bk,rd,bk2,rd2)while(1):import timeimport shutilshutil.copy('ha.conf', 'ha.backup' + time.strftime('%Y-%m-%d-%H-%M-%S'))choice = int(input('''
HAproxy配置文件操作:
1、输入backend,显示对应server信息
2、添加backend和server信息
3、修改backend和server信息
4、删除backend和server信息
***************************************
请输入需要选择的操作编号:'''))if choice == 1:bk = input('请输入需查询的backend:')for i in fetch(bk):print(i)elif choice == 2:bk = input('请输入需添加的backend:')rd = input('请输入需添加的server:')add(bk,rd)elif choice == 3:choice2 = input('''1、仅修改backend2、修改backend和server请选择:''')if choice2 == 1:bk = input('请输入修改前的backend:')bk2 = input('请输入修改后的backend:')modify_1(bk, bk2)elif choice2 == 2:bk = input('请输入修改前的backend:')bk2 = input('请输入修改后的backend:')rd = input('请输入修改前的server:')rd2 = input('请输入修改后的server:')modify_2(bk, rd, bk2, rd2)else:print('编号输入错误')elif choice == 4:bk = input('请输入要删除的backend:')rd = input('请输入要删除的server:')delete(bk, rd)else:print('编号输入错误')
2. MOOC - 程序设计基础
第3周:程序设计方法基础-2 -> 完成
1)raptor制作流程图
- The Rapid Algorithmic Prototyping Tool for Ordered Reasoning --用于有 序推理的快速算法原型工具
2)自底向上的程序设计方法
3)自顶向下、逐步求精的程序设计方法
4)结构化程序设计方法
5)模块化程序设计方法
6)面向对象程序设计方法
3. MOOC课表
4. Python视频
装饰器学习
转载于:https://www.cnblogs.com/wnzhong/p/5866020.html
2016/09/12相关推荐
- 2016.09.14,英语,《Using English at Work》全书笔记
半个月时间,听完了ESLPod出品的<Using English at Work>,笔记和自己听的时候的备注列在下面.准备把每个语音里的快速阅读部分截取出来,放在手机里反复听. 下一阶段把 ...
- 电大计算机网考怎么过,史上最牛--电大计算机网考小抄(考试必备)--2016.09.08【呕心沥血整理、电大考试必过】.doc...
史上最牛--电大计算机网考小抄(考试必备)--2016.09.08[呕心沥血整理.电大考试必过] 计算机网考Windows操作系统及其应用-选择题B A.Ctrl + Alt B.Ctrl + Shi ...
- 计算机一级判断题2016,2016年12月计算机一级考试WPS判断题及答案
练习做多了自然会形成自己的做题方法和速度,为此,今天百分网小编为大家整理了以下2016年12月计算机一级考试WPS判断题及答案,希望对大家有帮助! 判断题一 1.在Word中,标尺是按一个字符宽度标度 ...
- 计算机应用基础考试试题及答案 在word中,用户建立的文件默认,天津大学《计算机应用基础》2016年12月考试期末大作业考核试题...
请同学及时保存作业,如您在20分钟内不作操作,系统将自动退出. <计算机应用基础>2016年12月考试期末大作业考核试题 试卷总分:100 测试时间:-- 单选题 一.单选题(共50 道试 ...
- 令人振奋的好消息!2016年12月8日Google Developers中文网站发布!
令人振奋的好消息! 2016年12月8日Google Developers中文网站发布! 以往我们需要访问Android的开发网站.Google的开发网站都需要翻墙,苦不堪言.现在Google发布了中 ...
- 福建二级计算机考试12,福建农林大学2016年12月计算机二级考试通知
福建农林大学2016年12月计算机二级考试通知 根据<福建省教育考试院关于做好2016年12月省高校学生计算机应用水平等级考试考务工作的通知>(闽考院社[2016]23号),定于2016年 ...
- 制药工程专业计算机二级,全国制药工程本科专业认证标准2016年12月修订.pdf
全国制药工程本科专业认证标准 (2016 年12 月修订) 一级指标 二级指标 观测点 标准内涵 设置依据 专业设置适应国家及地区经济建设及行业发展需要,符合学校自身条件.定位与发展规划. 专 ...
- 2016二级c语言成绩查询,2016年12月计算机二级C语言测试及答案
以下是百分网小编为大家整理的2016年12月计算机二级C语言测试题,大家可以来做一做,巩固一下自己的知识. 一.单选题 (1)*作系统主要有两个方面重要作用,下面叙述最恰当的是 A)管理系统的软件和硬 ...
- 2016年12月当前世界经济形势分析--美国的加息计谋
2016年12月当前世界经济形势分析--美国的加息计谋 美国2016年12月14终于加息了! 美国金融的套骗计谋,这次太过明显! 1.一直叫嚷着要加息,直到年末才兑现了一次! ...
最新文章
- 如何用excle制作黑人拉馆_家居DIY带你学习如何用塑料勺制作壁挂!
- 让Exchange 2010 (2007适用)可以收发外部邮件
- python买什么书好-python看什么书好
- 第一次做安卓项目使用的开源框架列表
- python3批量修改文件名称 代码说明
- Java 8系列之Stream中万能的reduce
- sklearn:sklearn.feature_selection的SelectFromModel函数的简介、使用方法之详细攻略
- 做网站用UTF-8还是GB2312?
- Microsoft Speech Platform
- Codeup-问题 C: 最短路径
- GitHub for windows使用教程(三) 团队协作流程
- 一些机器学习数据集(Dataset)
- 闲来没事写个记事本玩玩!!!
- 点击按钮弹出iframe_WEB安全(四) :CSRF与点击劫持
- 数据访问层代码自动生成
- 小米10/10 Pro详细规格曝光:120Hz高刷新率屏+66W超级闪充
- 园子是技术的园子吗?
- django 分页(2) 使用类 页码显示
- http 请求中的 referer
- pdf需要简体中文语言支持包_收集全网最好用的PDF转Word工具,赶快收藏起来!...
热门文章
- 用C语言实现控制台模拟显示时
- sdut2772 KMP的简单应用
- c++派生类和基类的构造函数和析构函数
- 广义回归神经网络(GRNN)的数据预测
- 【mysql解决方案】ERROR 1248 (42000): Every derived table must have its own alias
- 2018第九届蓝桥省赛题目
- alpinestars与丹尼斯_骑行靴|丹尼斯VS A星心得分享,它和普通鞋子不同之处竟在这里!...
- 一次难得的分库分表实践
- python之matloplib可视化
- Ubuntu 16.04 下Redis Cluster集群搭建