前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >第三周作业HAproxy文件操作

第三周作业HAproxy文件操作

作者头像
用户1679793
发布2018-04-28 10:04:15
5560
发布2018-04-28 10:04:15
举报
文章被收录于专栏:http://www.cnblogs.com
代码语言:javascript
复制
 1 #coding:utf-8
 2 #Author:Mr Zhi
 3 """
 4 HAproxy配置文件操作:
 5 
 6 1. 根据用户输入输出对应的backend下的server信息
 7 
 8 2. 可添加backend 和sever信息
 9 
10 3. 可修改backend 和sever信息
11 
12 4. 可删除backend 和sever信息
13 
14 5. 操作配置文件前进行备份
15 
16 6 添加server信息时,如果ip已经存在则修改;如果backend不存在则创建;若信息与已有信息重复则不操作
17 
18 配置文件 参考 http://www.cnblogs.com/alex3714/articles/5717620.html
19 """
20 import shutil
21 def Menu(): #定于关于菜单函数
22     menu = (
23         """\033[35;1m
24         1.增加
25         2.删除
26         3.修改
27         4.查询
28         \033[0m""")
29     print(menu.strip('\n'))
30 
31 def Backup_proxy(): #定于关于备份文件的函数
32     shutil.copyfile("HAproxy.conf","HAproxy.conf.bak")
33 
34 def Add_haproxy():  #定义关于增加加数据的函数
35     domain = input('输入你要添加的域名:')
36     domain_ip = input("输入你要添加的ip:")
37     domain_weight = input("输入weight值:")
38     domain_maxconn = input("输入maxconn值:")
39     Backup_proxy()  # 写入数据前执行备份文件的函数
40     with open("HAproxy.conf","a+",encoding="utf-8") as f: #打开文件追加模式
41         f_w = "backend %s\n\t\t server %s %s weight %s maxconn %s" % (domain,domain_ip,domain_ip,domain_weight,domain_maxconn)
42         f.write('\n' + f_w), f.flush() ##把数据写入文件
43         print("\033[36;1m添加成功!\033[0m")
44 
45 def Alter_haproxy(): #定义关于修改数据的函数
46     domain_old1 = input("输入你要修改的域名:")
47     print(type(domain_old1))
48     domain_new1 = input("输入新域名:")
49     ip_new1 = input("输入修改后的ip:")
50     weight_new1 = input("输入修改后的weight值:")
51     maxconn_new1 = input("输入修改后的maxconn值:")
52     with open("HAproxy.conf", "r", encoding="utf-8") as f:
53         lines = f.readlines()
54         num = lines.index("backend %s\n" %domain_old1) #赋值域名对应的列表索引号
55         lines[num] = "backend %s\n" %domain_new1 #根据索引号修改对应的backend
56         lines[num + 1] = "\t\tserver %s %s weight %s maxconn %s\n" % (ip_new1,ip_new1,weight_new1,maxconn_new1) #根据索引号修改对应的server
57         Backup_proxy()  # 写入数据前执行备份文件的函数
58     with open("HAproxy.conf", "w", encoding="utf-8") as f_w:
59         for line in lines:
60             f_w.write(line) #把修改后的列表写入文件中
61         print("\033[32;1m修改成功!\033[0m")
62 
63 def Search_haproxy():  #定义关于查看数据的函数
64     domain= input("输入你要查看的域名:")
65     with open("HAproxy.conf", "r", encoding="utf-8") as f:
66         lines = f.readlines()
67         num = lines.index("backend %s\n" %domain) #赋值域名对应的列表索引号
68         lines[num] = "backend %s\n" %domain #根据索引号修改对应的backend
69         print(lines[num],lines[num + 1])
70 
71 def Delete_haproxy(): #定义关于删除数据的函数
72     domain = input("输入你要删除的域名节点:")
73     with open("HAproxy.conf", "r", encoding="utf-8") as f:
74         lines = f.readlines()
75         num = lines.index("backend %s\n" %domain) #赋值域名对应的列表索引号
76         lines.pop(num)
77         lines.pop(num) #这里不用num + 1,因为上面已经删除了一个索引号
78     Backup_proxy()  # 写入数据前执行备份文件的函数
79     with open("HAproxy.conf", "w", encoding="utf-8") as f_w: #打开文件
80         for line in lines:
81             f_w.write(line)
82         print("\033[37;1m删除成功!\033[0m")
83 
84 while True:
85     Menu()
86     number = int(input("input number:"))
87     if number == 1:
88         Add_haproxy()
89     elif number == 2:
90         Delete_haproxy()
91     elif number == 3:
92         Alter_haproxy()
93     elif number == 4:
94         Search_haproxy()
95     else:
96         print("\033[31;1mInput is woring\033[0m")
97         continue
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017-05-22 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档