linux python 配置文件,python 操作haproxy配置文件

raw_input 获取的用户输入是字符串

input_str = raw_input("请输入内容:")

#如:

#用户输入:123   则 input_str = "123"

#用户输入:hello 则 input_str = "hello"

#用户输入:{"k1":123, 'k2': 'eddy'}   则 input_str = " {'k1':123, 'k2': 'eddy'} "

################# raw_input 获取到的输入都是字符串、字符串、字符串 !!!!!!! #################

因为raw_input 获取的是字符串,所以用户输入的 " {'k1':123, 'k2': 'eddy'} " 不具有字典的特性,也就不能使用 dic['key'] 来获取值

如果想要将用户输入的内容转换下格式,

"{'k1':123, 'k2': 'eddy'}"       字符串转换成字典类型

"[11,22,33,44]"                     字符串转换成列表类型

json模块

json模块的作用之一:根据字符串书写格式,将字符串自动转换成相应格式

import json

inp_str = "[11,22,33,44]"

inp_list = json.loads(inp_str) # 根据字符串书写格式,将字符串自动转换成 列表类型

inp_str = " {'k1':123, 'k2': 'eddy'} "

inp_dict = json.loads(inp_str) # 根据字符串书写格式,将字符串自动转换成 字典类型

输出:

1、获取ha记录

2、增加ha记录

3、删除ha记录

num = raw_input('请输入操作序号:')

如果用户输入的 1:

read = raw_input('请输入backend:')     如输入:www.eddy.org

讲配置文件 backend www.eddy.org 节点下的所有记录获取到,并输入到终端

如果用户输入的 2:

read = raw_input('请输入要新加的记录:') 如: {'backend': 'test.eddy.org','record':{'server': '100.1.7.9','weight': 20,'maxconn': 30}}

# 讲read字符串转换成 字典类型

read_dict = json.loads(read)

backend_title = read_dict['backend']

# 去配置文件中找到指定的节点:

# backend test.eddy.org

# 如果已经存在,

# 则在此节点下添加根据用输入构造出的记录,例如:

server 100.1.7.9 100.1.7.9 weight 20 maxconn 3000

# 如果不存在,

# 则添加backend节点和记录,例如:

backend test.eddy.org

server 100.1.7.9 100.1.7.9 weight 20 maxconn 3000

# (可选)可以再对节点下记录进行判断是否已经存在

如果用户输入的 3:

read = raw_input('请输入要删除的记录:') 如: {'backend': 'test.eddy.org','record':{'server': '100.1.7.9','weight': 20,'maxconn': 30}}

# 讲read字符串转换成 字典类型

read_dict = json.loads(read)

backend_title = read_dict['backend']

#去配置文件中找到指定的节点,并在删除指定记录,如:

backend test.eddy.org

server 100.1.7.10 100.1.7.10 weight 20 maxconn 3000

server 100.1.7.9 100.1.7.9 weight 20 maxconn 3000   # 删除掉

# (可选)如果backend下所有的记录都已经被删除,那么将当前 backend test.eddy.org 也删除掉。

原配置文件

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 eddy.org

bind 0.0.0.0:80

option httplog

option httpclose

option  forwardfor

log global

acl www hdr_reg(host) -i www.eddy.org

use_backend www.eddy.org if www

backend www.eddy.org

server 100.1.7.9 100.1.7.9 weight 20 maxconn 3000

backend buy.eddy.org

server 100.1.7.90 100.1.7.90 weight 20 maxconn 3000

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值