修改配置文件haproxy

文件内容

 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
29 backend www.bigd.org                #节点bidg
30     server10.1.7.9 weight 20 maxconn 3000
31
32 backend www.qq.com                 #qq节点
33     server171.8.7.7 weight 70 maxconn 3000

代码部分

  1 #Author BigD
  2 # -*- coding:utf-8 -*-
  3
  4 #修改配置文件haproxy
  5 # 1、查询节点下信息
  6 # 2、新建节点
  7 # 3、删除节点
  8 # 4、修改节点
  9
 10 ###################################读取文件################################
 11 current_index = -1
 12 list = []
 13 dict_all = {}
 14 old_content = []
 15 print("有如下节点:")
 16 for index,line in enumerate(open("haproxy","r")):
 17
 18     if line.startswith("backend"):
 19         current_index = index + 1
 20         nod = line.strip().split()[1]
 21
 22         dict_all[nod.split(".")[1]]={}
 23         dict_all[nod.split(".")[1]]["bakend"] = nod
 24     elif index == current_index:
 25         dict_all[nod.split(".")[1]]["record"] = {}
 26         dict_all[nod.split(".")[1]]["record"]["server"] = line.strip().split()[1]
 27         dict_all[nod.split(".")[1]]["record"]["weight"] = line.strip().split()[3]
 28         dict_all[nod.split(".")[1]]["record"]["maxconn"] = line.strip().split()[5]
 29     else:
 30         old_content.append(line.strip())
 31 open("haproxy","r").close()
 32 ##########################代码正文###############################################
 33 while True:
 34     print("请选择需要的功能".center(50,"="))
 35     print("已有的节点:")
 36     for dict_one in dict_all:
 37         print(dict_one)
 38
 39     print("现有功能:\n1、查询节点;\n2、增加节点;\n3、修改节点;\n4、删除节点\n5、退出。")
 40     choice = input("请选择你需要的功能:")
 41     if choice == "1":         #查询
 42         while True:
 43             choice_query = input("请输入查询的节点,退出(q):")
 44             if choice_query == "q":
 45                 break
 46             if choice_query in dict_all:                                            #查询
 47                 print("节点名称:",dict_all[choice_query]["bakend"])
 48                 print("ip地址:",dict_all[choice_query]["record"]["server"])
 49                 print("权重:",dict_all[choice_query]["record"]["weight"])
 50                 print("连接数:",dict_all[choice_query]["record"]["maxconn"])
 51             else:
 52                 print("wrong!")
 53
 54     elif choice == "2":         #增加
 55         # print("增加")
 56         while True:
 57             add_simple_name = input("请输出节点简称")
 58             add_name = input("请输出节点名称")
 59             add_ip = input("请输出节点ip")
 60             add_weight = input("请输出节点权重")
 61             add_maxconn = input("请输出节点最大连接数")
 62             dict_all[add_simple_name]={}
 63             dict_all[add_simple_name]["bakend"] = add_name                      #节点简称
 64             dict_all[add_simple_name]["record"] = {}
 65             dict_all[add_simple_name]["record"]["server"] = add_ip              #节点ip
 66             dict_all[add_simple_name]["record"]["weight"] = add_weight          #节点权重
 67             dict_all[add_simple_name]["record"]["maxconn"] = add_maxconn        #节点最大连接数
 68             print("添加成功",dict_all[add_simple_name])
 69             break
 70     elif choice == "3":
 71         # print("修改")
 72         while True:
 73             modify_nod = input("你想修改哪个节点啊?退出(q)")
 74             if modify_nod == "q":
 75                 break
 76             if modify_nod in dict_all:
 77                 modify_nod
 78                 dict_all[modify_nod]["bakend"] = input("请输出修改后节点名称")
 79                 dict_all[modify_nod]["record"]["server"] = input("请输出修改后节点ip")
 80                 dict_all[modify_nod]["record"]["weight"] = input("请输出修改后节点权重")
 81                 dict_all[modify_nod]["record"]["maxconn"] = input("请输出修改后节点最大连接数")
 82     elif choice == "4":
 83         # print("删除")
 84         while True:
 85             delete_nod = input("你想删除那个节点呢,退出(q)?")
 86             if delete_nod == "q":
 87                 break
 88             if delete_nod in dict_all:
 89                 dict_all.pop(delete_nod)    #删除1
 90                 # del dict_all[delete_nod]    #删除2
 91                 print("删除成功!")
 92             else:
 93                 print("没有这个节点,重新输入!")
 94
 95     elif choice == "5":
 96         # print("退出")
 97         open("haproxy", "w").write("")
 98         for i in old_content:
 99             # print(i)
100             open("haproxy", "a").write("%s\n"%i)
101             # open("haproxy_new", "a").write("\n")
102             #
103             # open("haproxy_new", "a").write(dict_all)
104         for i in dict_all:
105             print(i)
106             open("haproxy", "a").write("backend %s\n\tserver%s weight %s maxconn %s\n\n"%(dict_all[i]["bakend"],dict_all[i]["record"]["server"],dict_all[i]["record"]["weight"],dict_all[i]["record"]["maxconn"]))
107     else:
108         pass

现有功能:
1、查询节点;
2、增加节点;
3、修改节点;
4、删除节点
5、退出。
请选择你需要的功能:

时间: 2024-08-08 22:09:53

修改配置文件haproxy的相关文章

修改配置文件matplotlibrc,让Matplotlib显示中文

matplotlib默认不支持中文显示,网上的解决办法有好多种,但是大多数都是通过在代码中指定字体,虽然也能实现,但是多出那么几行代码让人觉得很恶心. 本文介绍一种通过修改配置文件matplotlibrc,让Matplotlib显示中文的方法:在win7,Python2.7.9测试通过 第一步:将中文字体复制到matplotlib的字体目录中 中文字体以微软雅黑为例,在 C:\Windows\Fonts 下面找到“微软雅黑”字体.matplotlib默认安装在 %PythonPath%\Lib\

第一个shell脚本——修改配置文件

有需求,可以让自己偷懒才是学习的真正动力.由于测试环境在构建代码之后总是需要手动修改配置文件,因此边学习边完成了一个shell脚本,可以一键修改. 定义了一个函数,输出信息以绿色字体显示. function echo_green { echo -e "\033[32m$1\033[0m" } 输出提示信息 echo_green "是否一键修改xxx?(y/n)" 读取键盘输入 read answer 要修改的配置文件有两类:一类是明确清楚应该修改哪些字符串,直接用替

练习—简单修改配置文件

1.文件 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

在Openfire中使用自己的数据表之修改配置文件

目前我使用的Openfire版本是3.10.3,以下使用说明也是在这个版本上做的修改. Openfire提供了两种方式使用用户数据表.一种是安装完成之后默认实现的org.jivesoftware.openfire.user.DefaultUserProvider,一种是org.jivesoftware.openfire.user.JDBCUserProvider,同样对于用户验证也提供了默认实现的org.jivesoftware.openfire.auth.DefaultAuthProvider

如何修改配置文件:CentOS下SSH端口修改

CentOS各发行版中SSH端口默认为22,如果正式做站或其它用途,为了提高安全性就需要修改掉默认的SSH端口号,防止被有心人穷举密码.部分VPS提供商,若您的VPS服务器SSH遭受多次的暴力破解,可能会遭到罚款或临时终止服务,所以修改SSH的默认端口是有必要的. 有的朋友不知道“穷举”是什么意思,这里给这些朋友扫盲下 : 穷举法,或称为暴力破解法,是一种针对于密码的破译方法,即将密码进行逐个推算直到找出真正的密码为止.例如一个已知是四位并且全部由数字组成的密码,其可能共有10000种组合,因此

Linux网络属性配置—修改配置文件

修改配置文件 1.ip.MASK.GW.DNS配置文件的位置: /etc/sysconfig/network-scripts/ifcfg-IFACE [[email protected] ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 TYPE=Ethernet 接口类型,常见的有ETHERNET(以太网).Bridge(桥接接口) BOOTPROTO=dhcp 激活此接口使用什么协议来配置接口属性:dhcp,boot,static,none

windows下MySQL5.6以上版本,如何通过修改配置文件来修改数据库的最大连接数啊?

并没有my.ini文件,只有一个my-default.ini文件,并且里面并没有max_connections windows下MySQL5.6以上版本,如何通过修改配置文件来修改数据库的最大连接数啊? >> mysql 这个答案描述的挺清楚的:http://www.goodpm.net/postreply/mysql/1010000007441196/windows下MySQL56以上版本如何通过修改配置文件来修改数据库的最大连接数啊.html

python实现修改配置文件

python实现修改配置文件 原配置文件 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

java web工程读取及修改配置文件

这篇博客比自己讲解的详细: http://blog.sina.com.cn/s/blog_69398ed9010191jg.html 使用方法: 1)配置文件在web-info的class目录下,或者说,eclipse工程的src目录下 2)问题:修改配置文件之后,若不重启服务器,配置文件能够即刻实时生效么?自己利用tomcat测试的结果是可以,但最好进一步确认一下 package com.bobo.util; import java.io.BufferedReader; import java