2016/09/12
生活随笔
收集整理的這篇文章主要介紹了
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的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C#序列化
- 下一篇: 前端自动化之sass实时编译及自动刷新浏