流程图:

代码

 #!/sur/bin/env python
# -*- coding: utf-8 -*-
#{"backend": "www.oldboy.org","record":{"server": "100.1.7.90","weight": 20,"maxconn": 30}}
import json
import sys def add_ha(backend_de):
backend_dic = json.loads(backend_de)
backend_add = 'server %s weight %s maxconn %s'%(backend_dic['record']['server'],backend_dic['record']['weight'],+backend_dic['record']['maxconn'])
with open("haproxy.conf") as read_f,open("ceshi","w") as write_f :
for lines in read_f.readlines():
write_f.write(lines)
write_f.write('backend'' '+backend_dic['backend']+'\n')
write_f.write(' '*8+backend_add) # def delet_ha(backend_de):
backend_dic = json.loads(backend_de) ##将字符串转换为相印的数据类型
backned_check=list(bakcned_dic['backend']) #www.oldboy.org
backend_del = ' server %s weight %s maxconn %s\n'%(backend_dic['record']['server'],backend_dic['record']['weight'],+backend_dic['record']['maxconn']) ##数据类容
with open("haproxy.conf") as read_f,open("ceshi","w") as write_f :
for lines in read_f.readline():
backend_list=[]
backend_list.append(lines.strip())
backend_list.append(lines)
if lines.strip().split()[2] == backned_check:
continue
elif backend_del == lines :
backend_list.remove(lines)
write_f.write(backend_list) def change_ha(backend_de):
backend_dic = json.loads(backend_de) ##将字符串转换为相印的数据类型
backned_check=list(bakcned_dic['backend']) #www.oldboy.org
backend_del = ' server %s weight %s maxconn %s\n'%(backend_dic['record']['server'],backend_dic['record']['weight'],+backend_dic['record']['maxconn']) ##数据类容
with open("haproxy.conf") as read_f,open("ceshi","w") as write_f :
for lines in read_f.readline():
backend_list=[]
backend_list.append(lines.strip())
backend_list.append(lines)
if lines.strip().split()[2] == backned_check:
write_f.write(backend_del)
continue
elif backend_del == lines :
print("类容已存在,请确定后再修改")
sys.exit()
write_f.write(backend_list) while True:
number_ha = int(input("1、添加\n2、删除\n3、修改\n请输入以上阿拉伯数字:"))
if number_ha == 1:
backend_de=input("请输入backend:") #如输入:["bakcend","www.oldboy.org"]
add_ha(add_file)
elif number_ha == 2:
backend_de=input("请输入要删除的bakcned:") #如 www.oldboy.org
delet_ha(delet_file)
elif number_ha == 3:
backend_de=input("请输入要删除的bakcned:")
change_ha()
else:
print("你输入的功能有误,请重新输入")
continue

代码

ha配置文件

 frontend oldboy.org
bind 0.0.0.0:80 backend www.oldboy.org
server 100.1.7.9 1020.1.7.9 weight 20 maxconn 3000 backend buy.oldboy.org
server 100.1.7.90 100.1.7.90 weight 20 maxconn 30000

HA配置文件代码

day_ha配置文件的更多相关文章

  1. .Net Core MVC 网站开发(Ninesky) 2.3、项目架构调整(续)-使用配置文件动态注入

    上次实现了依赖注入,但是web项目必须要引用业务逻辑层和数据存储层的实现,项目解耦并不完全:另一方面,要同时注入业务逻辑层和数据访问层,注入的服务直接写在Startup中显得非常臃肿.理想的方式是,w ...

  2. ASP.NET MVC5+EF6+EasyUI 后台管理系统(64)-补充WebApi与Unity注入-配置文件

    系列目录 上一篇演示了WebApi利用Unity注入 很多人问我如何用配置文件来配置注入,本节演示如何利用配置文件来注入,道理是一样的,跳转到上一节下载源码一起来动手! 1.打开源码定位到文件Depe ...

  3. Spring配置文件标签报错:The prefix "XXX" for element "XXX:XXX" is not bound. .

    例如:The prefix "context" for element "context:annotation-config" is not bound. 这种 ...

  4. nginx服务器安装及配置文件详解

    nginx在工作中已经有好几个环境在使用了,每次都是重新去网上扒博客,各种编译配置,今天自己也整理一份安装文档和nginx.conf配置选项的说明,留作以后参考.像负载均衡配置(包括健康检查).缓存( ...

  5. C#开发中使用配置文件对象简化配置的本地保存

    C#开发中使用配置文件对象简化配置的本地保存 0x00 起因 程序的核心是数据和逻辑,开发过程中免不了要对操作的数据进行设置,而有些数据在程序执行过程中被用户或程序做出的修改是应该保存下来的,这样程序 ...

  6. 使用T4模板生成不同部署环境下的配置文件

    在开发企业级应用的时候,通常会有不同的开发环境,比如有开发环境,测试环境,正式环境,生产环境等.在一份代码部署到不同环境的时候,不同环境的配置文件可能需要根据目标环境不同而不同.比如在开发环境中,数据 ...

  7. 配置文件Java读写

    今天把配置文件的Bug修复了,总结一下Java配置文件如何读写 配置文件的格式 以.properties后缀结尾,内容不出现空格和双引号 //config.properties Driver=com. ...

  8. .NET平台开源项目速览(1)SharpConfig配置文件读写组件

    在.NET平台日常开发中,读取配置文件是一个很常见的需求.以前都是使用System.Configuration.ConfigurationSettings来操作,这个说实话,搞起来比较费劲.不知道大家 ...

  9. DotNet程序配置文件

    在实际的项目开发中,对于项目的相关信息的配置较多,在.NET项目中,我们较多的将程序的相关配置直接存储的.config文件中,例如web.config和app.config. .NET中配置文件分为两 ...

随机推荐

  1. Arduino LiquidCrystal Library Bug Report #174181

    Arduino LiquidCrystal Character LCD Driver Library BUG Report #174181 by Conmajia Effected Devices H ...

  2. Go 并发随机打印1-n

    package main import (     "fmt"     "math/rand"     "sync"     "t ...

  3. 任务十二:学习CSS 3的新特性

    任务目的 学习了解 CSS 3 都有哪些新特性,并选取其中一些进行实战小练习 任务描述 实现 示例图(点击查看) 中的几个例子 实现单双行列不同颜色,且前三行特殊表示的表格 实现正常状态和focus状 ...

  4. 图片裁剪(cropper)后上传问题

    最近工作需要处理头像裁剪以及上传,研究了几天,写点心得,提醒自己记住踩过的坑,能帮助别人当然更好. 功能基本就是这样: 这里需要注意的是:拿到需求后,不要急于直接上手,花费半个小时,甚至更长时间缕清整 ...

  5. PMBOK 学习与实践分享视频

    本系列为自己在学习PMBOK时进行的总结与分享,每一节主要包括两部分: 对PMBOK本身的一个结构笔记和讲解. 对自己项目管理工作的一个总结和思考. PMBOK 学习与实践分享视频内容清单 人力资源管 ...

  6. .net之抽象工厂模式

    //抽象工厂 //抽象食物 namespace abstractFactory{ public abstract class food { public abstract void Food(); } ...

  7. [ext4]01 磁盘布局 - block分析

    ext4文件系统最基本的分配单元是"block"(块). block是由一组连续的sectors来组成,其大小介于1k~4K之间,当然不可能是任意值,只能是2的整数次幂个secto ...

  8. 用java实现大文件分割、排序、合并

    import java.io.BufferedReader;   import java.io.BufferedWriter;   import java.io.FileNotFoundExcepti ...

  9. 解决oracle用户锁定

        故障现象: SQL> connect scott/scottERROR:ORA-01017: invalid username/password; logon deniedSQL> ...

  10. Java:构造器,构造代码块,静态代码块的执行顺序

    1.构造器:与类同名且没有返回值,用来初始化类属性: 构造器又分为无参构造器和有参构造器 1.1:无参构造器 public class Contruction{ ...属性... public Con ...