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配置文件--文件基础操作
一.需求分析 有查询,删除,添加的功能 查询功能:查询则打印查询内容,如果不存在也要打印相应的信息 删除功能:查询到要删除内容则删除,打印信息. 添加功能:同上. 二.流程图 三.代码实现 本程序主要 ...
随机推荐
- Delaunay剖分与平面欧几里得距离最小生成树
这个东西代码我是对着Trinkle的写的,所以就不放代码了.. Delaunay剖分的定义: 一个三角剖分是Delaunay的当且仅当其中的每个三角形的外接圆内部(不包括边界)都没有点. 它的存在性是 ...
- ffmpeg+x264 Windows MSVC 静态编译
尝试ubuntu和win下mingw编译版本,但都在Vistual Studio链接时因为依赖 libgcc.a, libmingw.a, libmingwex.a 会与mscrt 有符号冲突. 最后 ...
- nginx配置为windows服务中的坑
网上搜索“nginx 配置为windows服务”,很容易搜索到使用windows server warpper来配置,于是按照网上的方法我从github上的链接下载了1.17版本,前面都很顺利,很容易 ...
- 高性能MySQL(五):查询性能优化
当向MySQL 发送一个请求的时候MySQL 到底做了什么? 1.客户端发送一条查询给服务器 2.服务器先检查查询缓存,如果命中了缓存,则立即返回存储在缓存中的结果.否则进入下一阶段 3.服务器端进行 ...
- 序列化多个form表单内容同时提交
一.首先将表单主体序列化为json对象. 方法: //将表单序列化为json,这里加了个jQuery的扩展方法 $.fn.serializeJson = function () { var resul ...
- linux常用命令的介绍
本文主要介绍Linux常用命令工具,比如用户创建,删除,文件管理,常见的网络命令等 如何创建账号: 1. 创建用户 useradd -m username -m 表示会在/home 路径下添加创建用户 ...
- vim /vi中对字符串的查找并替换
vi/vim 中可以使用 :s 命令来替换字符串.该命令有很多种不同细节使用方法,可以实现复杂的功能,记录几种在此,方便以后查询. :s/vivian/sky/ 替换当前行第一个 vivian ...
- android学习第一篇 基本概念
一. 1. Android 四大組件 Activity , Service , BroadcastReceiver ,ContentProvider 2. 多個Activity組成棧,當前A ...
- MFC操作注册表
1.创建和修改注册表 BOOL CTestToolCtr::GetHkey(CString strHkey, HKEY& hkey) { == strHkey.CompareNoCase(_T ...
- Swift - UIBezierPath
使用UIBezierPath可以创建基于矢量的路径.使用此类可以定义简单的形状,如椭圆.矩形或者有多个直线和曲线段组成的形状等.主要用到的该类的属性包括 moveToPoint: //设置起始点 ad ...