对haproxy文件后端信息进行增删查(python3.x)

1,程序要求

 1 1、查
 2     输入:www.oldboy.org
 3     获取当前backend下的所有记录
 4
 5 2、新建
 6     输入:
 7         arg = {
 8             ‘backend‘: ‘www.oldboy.org‘,
 9             ‘record‘:{
10                 ‘server‘: ‘100.1.7.9‘,
11                 ‘weight‘: 20,
12                 ‘maxconn‘: 30
13             }
14         }
15
16 3、删除
17     输入:
18         arg = {
19             ‘backend‘: ‘www.oldboy.org‘,
20             ‘record‘:{
21                 ‘server‘: ‘100.1.7.9‘,
22                 ‘weight‘: 20,
23                 ‘maxconn‘: 30
24             }
25         }
26
27 复制代码

程序要求

 1 global
 2         log 127.0.0.1 local2
 3         daemon
 4         maxconn 256
 5         log 127.0.0.1 local2 info
 6 defaults
 7         log global
 8         mode http
 9         timeout connect 5000ms
10         timeout client 50000ms
11         timeout server 50000ms
12         option  dontlognull
13
14 listen stats :8888
15         stats enable
16         stats uri       /admin
17         stats auth      admin:1234
18
19 frontend oldboy.org
20         bind 0.0.0.0:80
21         option httplog
22         option httpclose
23         option  forwardfor
24         log global
25         acl www hdr_reg(host) -i www.oldboy.org
26         use_backend www.oldboy.org if www
27
28 backend www.oldboy.org
29         server 100.1.7.9 100.1.7.9 weight 20 maxconn 3000

haproxy配置文件

输入以上信息可以达到需要的效果

 1 def find_web_info(x):
 2         if choice_num==1:
 3             with open("haproxy_file",‘r‘) as f:
 4                 for line in f:
 5                     if line.startswith("backend %s" %x):
 6                         for i in range(10000):
 7                             read=f.readline()
 8                             if read.startswith(‘backend‘):
 9                                 break
10                             elif read.strip()==‘‘:
11                                 pass
12                             else:
13                                 print(read)
14                     else:
15                         pass

查找信息模块

1 def create_web_info(x):
2     key_list=[]
3     key1_list=[]
4     with open("haproxy_file",‘a‘) as f:
5         f.write(‘bakend‘+‘ ‘+x["bakend"]+‘\n‘)
6         web_info_dic=x[‘record‘]
7         f.write(‘\t\t‘+‘server‘+‘ ‘+web_info_dic[‘server‘]+‘ ‘+‘weight‘+‘ ‘8             +str(web_info_dic[‘weight‘])+‘ ‘+‘maxconn‘+‘ ‘+str(web_info_dic[‘maxconn‘])+‘\n‘)
9     print("写入后端信息成功")

创建信息模块

 1 def delete_web_info(x):
 2     find_line=‘‘
 3     backend_name=‘bakend‘+‘ ‘+x["bakend"]
 4     backend_name=backend_name.strip()
 5     web_info_dic=x[‘record‘]
 6     back_info=‘server‘+‘ ‘+web_info_dic[‘server‘]+‘ ‘+‘weight‘+‘ ‘ 7             +str(web_info_dic[‘weight‘])+‘ ‘+‘maxconn‘+‘ ‘+str(web_info_dic[‘maxconn‘])
 8     back_info=back_info.strip()
 9     with open("haproxy_file",‘r‘) as f:
10         for line in f:
11             if backend_name in line:
12                line=line.replace(line,‘‘)
13             elif back_info in line:
14                line=line.replace(line,‘‘)
15             else:
16                 pass
17             find_line+=line
18     with open("haproxy_file",‘w‘) as f1:
19         f1.write(find_line )
20     print("后端信息删除完成")

删除信息模块

 1 while True:
 2     print(‘‘‘
 3             welecome to haproxy file
 4                 1.find_web_info
 5                 2.create_web_info
 6                 3.delete_web_ifo
 7         ‘‘‘)
 8     choice_num=int(input("输入你对haproxy文件的操作选择:"))
 9     if choice_num ==1:
10         find_name=input("输入需要查找的域名:")
11         find_web_info(find_name )
12     elif choice_num ==2:
13         create_info=input("输入你插入的后端信息:")
14         create_info =eval(create_info )
15         create_web_info(create_info)
16     elif choice_num ==3:
17         delete_info=input("输入你删除的信息:")
18         delete_info =eval(delete_info )
19         delete_web_info(delete_info )
20     else:
21         print("输入有误,请再输入一次")

主函数模块

原文地址:https://www.cnblogs.com/summer-future/p/9210358.html

时间: 2024-10-11 09:28:42

对haproxy文件后端信息进行增删查(python3.x)的相关文章

JAVA原生mvc实现用户信息的增删查改

笔者最近学完jsp和servlet,于是心血来潮的打算写个简单的用户案例 环境准备: 开发工具eclipse jdk-1.8.0_72 tomcat-9.0.5 前端部分: 1.自己手写了一套样式 2.使用ajax交互 目录结构: java目录: 前端目录 需求分析: 1.能够实现用户的登录和注册 2.能够实现对用户信息的增删查改 3.登录过一次的用户保存登录记录,也就是记录session 由于笔者不是很擅长写界面,所以后台界面部分不是写的很好看,这里就先预览一遍 由于代码量太多了,我就把这个项

信息的增删查改

//查询所有信息 public List<Info> findAllInfo(){ List<Info> list = new ArrayList<Info>(); try { DataCon dc = new DataCon(); //数据库对象 Connection con = dc.getConnction();//连接数据库 String sql = "select i.*,u.* from info i,user u where i.userid=u

【springmvc+mybatis项目实战】杰信商贸-30.出口报运增删查修mapper+Dao+Service+Controller

我们接下来做我们项目的下一个环节,就是出口报运的业务,首先我们来看看两个设计方式 a)大型项目设计方式 传统设计方式,基于对象关联,数据量小时,系统无碍:当数据随着系统的使用,线性增长,系统变的越来越慢,到达一定数据量时,性能急剧下降. b)新的设计方式:打断设计 在表中增加一个字段,这个字段用来存储关联表的主键集合:在报运业务中要查询合同下的货物信息.直接通过这个关联字段,利用in子查询直接去查询货物表,这样查询效率提高很多.而且数据量越大,查询效率越高.这种方式,业务关联层级越多,这种设计方

4.CRUD Operations Using the Repository Pattern in MVC【在MVC中使用仓储模式进行增删查改】

原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/crud-using-the-repository-pattern-in-mvc/ 上一篇文章,讲到了MVC中基本的增删查改,这篇文章,我会继续说到,使用仓储模式,进行增删查改. 什么是仓储模式呢,我们先来了解一下:  仓储模式是为了在程序的数据访问层和业务逻辑层之间创建一个抽象层,它是一种数据访问模式,提供了一种更松散耦合的数据访问方法.我们把创建数据访问的逻辑代码写在单独的类中,或者类库中

6.在MVC中使用泛型仓储模式和依赖注入实现增删查改

原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/crud-operations-using-the-generic-repository-pattern-and-dep/ 系列目录: Relationship in Entity Framework Using Code First Approach With Fluent API[[使用EF Code-First方式和Fluent API来探讨EF中的关系]] Code First Mig

mybatis实现简单的增删查改

接触一个新技术,首先去了解它的一些基本概念,这项技术用在什么方面的.这样学习起来,方向性也会更强一些.我对于mybatis的理解是,它是一个封装了JDBC的java框架.所能实现的功能是对数据库进行增删查改的功能. 首先,需要搭建一个demo,用于学习这个框架的使用方式.(1)在IDE上建立自己的工程目录,一个普通的java工程项目就好,我电脑本地的IDE是Myeclipse.(2)引入搭建框架需要的jar包,这个直接去网上搜索就好.(3)框架的核心实现都是基于配置的,引入jar包后,先配置my

hibernate基础增删查改简单实例

hibernate 基础理论知识网上很多,可以百度和google.这里不做多的介绍,以一个User表来开展例子 建一个web-project 我这里用了junit单元测试环境来进行增删查改的测试,别的不多说,导包就行 本次用到的所有jar包下载地址: 链接:http://pan.baidu.com/s/1skHrg0t 密码:dbe2 1.hibernate配置文件(hibernate.cfg.xml):主要是数据库连接核心的配置项 <?xml version='1.0' encoding='u

一套手写ajax加一般处理程序的增删查改

倾述下感受:8天16次驳回.这个惨不忍睹. 好了不说了,说多了都是泪. 直接上代码 : 这个里面的字段我是用动软生成的,感觉自己手写哪些字段太浪费时间了,说多了都是泪 ajax.model层的代码: using System; namespace Ajax.Model { /// <summary> /// SM_Class:实体类(属性说明自动提取数据库字段的描述信息) /// </summary> [Serializable] public partial class SM_C

mybatis实现的对数据的增删查改

mybatis实现的对数据的增删查改 前期准备 新建java工程或java wweb工程, 需要导入以下的包, 基本工作已经完成,接下来开始进入正题. 新建实体类 新建与数据库表对应的实体类 package com.edu.hpu.domain; /** * @author Administrator *user表所对应的实体类 */ public class User { //实体类的属性和表的字段名称一一对应 private int id; private String name; priv