Python3.5 day3作业二:修改haproxy配置文件。
需求:
1.使python具体增删查的功能。
haproxy的配置文件。
global
log 127.0.0.1 local2
daemon
maxconn 256
log 127.0.0.1 local2 info
defaults
log global
mode http
timeout connect 5000ms
timeout client 50000ms
timeout server 50000ms
option dontlognull listen stats :8888
stats enable
stats uri /admin
stats auth admin:1234 frontend oldboy.org
bind 0.0.0.0:80
option httplog
option httpclose
option forwardfor
log global
acl www hdr_reg(host) -i www.oldboy.org
use_backend www.oldboy.org if www backend www.oldboy.org
server 100.1.7.9 100.1.7.9 weight 20 maxconn 3000
import os,re,sys
from collections import defaultdict,OrderedDict
conf = "haproxy.cfg"
conf_new = "haproxy.cfg.new"
backend_list = []
server_dict= {}
show_dict = {}
backend_name_dict = {}
server_info= []
server_flag = False ###初始化server判断标志位###
with open(conf,'r') as ha: ###打开haproxy配置文件###
for line in ha:
line = line.strip('\n')
if re.match('backend',line): ###匹配配置文件以backend开头的行###
backend_name = re.split('\s+',line)[1]
backend_list.append(backend_name)
server_info1 = []
server_flag = True ###赋值标志位为真,用来与server关联###
elif server_flag and re.match('\s+server',line): ###匹配配置文件以server开头的行###
server_info = re.split('\s+',line)
server_info.remove('')
server_info1.append(server_info)
server_dict['server'] = server_info[1]
server_dict['weight'] = server_info[4]
server_dict['maxconn'] = server_info[5]
backend_name_dict[backend_name] = "name"
backend_name_dict[backend_name] = server_info1
else:
server_flag = False #循环
options_list = ["1.查询backend","2.删除backend","3.新增backend","5.退出"]
while True:
for i in options_list:
print(i)
find = (input("\033[94m请选择操作条目序号:\033[0m"))
if find.isdigit():
find = int((find))
#1是查询
if find == 1:
for i, ele in enumerate(backend_list):
print(i, ele)
find1 = input("请输入您要查询的backend的序号:")
find1 = int(find1)
for j in range(1):
print("==========%s============" %backend_list[find1])
for i in backend_name_dict[backend_list[find1]]:
print("server %s weigt %s maxconn %s" %(i[1],i[3],i[5]))
#2是删除
elif find == 2:
for i, ele in enumerate(backend_list):
print(i, ele)
find3 = int(input("请选择您要删除backend的序号:"))
server_show = []
for i, ele in enumerate(backend_name_dict[backend_list[find3]]):
server_show.append("server %s weight %s maxconn %s" % (ele[1], ele[3], ele[5]))
print(i, "server %s weight %s maxconn %s" % (ele[1], ele[3], ele[5]))
server_show1= str(server_show[0])
print(server_show1)
f = open(conf, "r")
f1 = open(conf_new, "a+")
for i in f:
if server_show1 in i:
i = i.replace(server_show1, "")
f1.write(i)
f1.flush()
f.close()
f1.close()
os.remove(conf)
os.rename(conf_new, conf)
backend_list1 = []
backend_list1.append("backend %s" %(backend_list[find3]))
backend_list2 = str(backend_list1[0])
f = open(conf, "r")
f1 = open(conf_new, "a+")
for i in f:
if backend_list2 in i:
i = i.replace(backend_list2, "")
f1.write(i)
f1.flush()
f.close()
f1.close()
os.remove(conf)
os.rename(conf_new, conf)
print("删除成功!!!")
#3是增加
elif find == 3:
arg = []
backend_name1 = []
backend_list3 = []
input_back = input("\033[94m请输入backend(www.orgboy.org):\033[0m")
arg.append("backend %s" %input_back)
input_server = input("\033[94m请输入server(127.0.0.1):\033[0m")
input_weight = input("\033[94m请输入weight(20):\033[0m")
# arg["weight"] = input_weight
input_maxconn = input("\033[94m请输入maxconn(3000):\033[0m")
arg.append(" server %s weight %s maxconn %s" %(input_server,input_weight,input_maxconn))
backend_name1 = str(arg[0])
f = open(conf, "a+")
f.write("%s \n" %backend_name1)
f.flush()
f.close()
backend_list3 = arg[1]
backend_list3 = str(backend_list3)
f = open(conf, "a+")
f.write("%s \n" %backend_list3)
f.close()
print("添加成功!!!")
#5是退出
elif find == 5:
exit()
else:
print("\033[91m请输入正确的序号\033[0m")
continue
Python3.5 day3作业二:修改haproxy配置文件。的更多相关文章
- (转)Python3.5 day3作业二:修改haproxy配置文件
原文:http://www.cnblogs.com/iwxk/p/6010018.html
- s12-day03-work01 python修改haproxy配置文件(初级版本)
#!/usr/local/env python3 ''' Author:@南非波波 Blog:http://www.cnblogs.com/songqingbo/ E-mail:qingbo.song ...
- Python3学习之路~2.10 修改haproxy配置文件
需求: .查 输入:www.oldboy.org 获取当前backend下的所有记录 .新建 输入: arg = { 'bakend': 'www.oldboy.org', 'record':{ 's ...
- 作业---修改haproxy配置文件
#查询 f=open("C:\\aaaaaaaaaaaaa\\haproxy.txt", "r", encoding="utf-8") ha ...
- python基础-修改haproxy配置文件
需要掌握的知识: 1.函数 2.文件处理 3.tag的用法 4.程序的解耦 需求: 1:查询 2:添加 3:删除 4:修改 5:退出 haproxy.conf 配置文件内容: global log 1 ...
- 用python修改haproxy配置文件
需求: 当用户输入域名的时候,显示出来下面的记录 当用户需要输入添加纪录的时候,添加到你需要的那个域名下面 global log 127.0.0.1 local2 daemon maxconn 256 ...
- 修改haproxy配置文件
需求: 1.查 输入:www.oldboy.org 获取当前backend下的所有记录 2.新建 输入: arg = { 'bakend': 'www.oldboy.org', 'record':{ ...
- python作业之修改用户配置文件
用户的配置文件如下 backend oldboy school school1 age 21 weight 210 qq 550176565 iphone 139987676backend oldgi ...
- python编辑修改haproxy配置文件--文件基础操作
一.需求分析 有查询,删除,添加的功能 查询功能:查询则打印查询内容,如果不存在也要打印相应的信息 删除功能:查询到要删除内容则删除,打印信息. 添加功能:同上. 二.流程图 三.代码实现 本程序主要 ...
随机推荐
- 卸载linux Mint自带jdk并安装最新jdk
查看安装的软件包sudo dpkg --list | grep -i jdk 删除jdksudo apt-get purge openjdk* 删除其他的包sudo apt-get purge ice ...
- 最小生成树(prim&kruskal)
最近都是图,为了防止几次记不住,先把自己理解的写下来,有问题继续改.先把算法过程记下来: prime算法: 原始的加权连通图——————D被选作起点,选与之相连的权值 ...
- 解决eclipse端口占用问题
在eclipse中开启tomcat服务器时报错:端口已被占用. 这是因为在tomcat开启的状态下,eclipse异常关闭,导致tomcat一直占用端口. 解决方法 在cmd窗口中输入命令-- net ...
- html5 websocket 实时日志推送
http://blog.csdn.net/neutrojan/article/details/46119645
- Android应用请求获取Root权限
应用获取Root权限的原理:让应用的代码执行目录获取最高权限.在Linux中通过chmod 777 [代码执行目录] /** * 应用程序运行命令获取 Root权限,设备必须已破解(获得ROOT权限) ...
- Linux内核:kthread_create(线程)、SLEEP_MILLI_SEC
转自:http://blog.csdn.net/guowenyan001/article/details/39230181 一.代码 #include <linux/module.h> # ...
- [译]:Xamarin.Android开发入门——Hello,Android深入理解
返回索引目录 原文链接:Hello, Android_DeepDive. 译文链接:Xamarin.Android开发入门--Hello,Android深入理解 本部分介绍利用Xamarin开发And ...
- parted LVM划分4T磁盘,在线扩展1.5T
磁盘分区: parted /dev/emcpowera (parted) print Model: Unknown (unknown) Disk /dev/emcpowera: 4398GB Se ...
- HashMap两种遍历方式的深入研究
转自:http://swiftlet.net/archives/1259 HashMap的遍历有两种方式,如下所示:第一种利用entrySet的方式: 1 2 3 4 5 6 7 Map map ...
- Quartz定时调度框架
Quartz定时调度框架CronTrigger时间配置格式说明 CronTrigger时间格式配置说明 CronTrigger配置格式: 格式: [秒] [分] [小时] [日] [月] [周] [年 ...