博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python字符串实战
阅读量:5024 次
发布时间:2019-06-12

本文共 3516 字,大约阅读时间需要 11 分钟。

haproxy配置文件

思路:读一行,写一行

global        log 127.0.0.1 local2        daemon        maxconn 256        log 127.0.0.1 local2 infodefaults        log global        mode http        timeout connect 5000ms        timeout client 50000ms        timeout server 50000ms        option  dontlognulllisten stats :8888        stats enable        stats uri       /admin        stats auth      admin:1234frontend 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 wwwbackend www.oldboy.org        server 100.1.7.9 100.1.7.9 weight 20 maxconn 3000        backend buy.oldboy.org        server 100.1.7.90 100.1.7.90 weight 20 maxconn 3000配置文件

要求可以提取出指定的backend内容,也可以添加指定backend内容

#!/usr/bin/env python# -*- coding:utf-8 -*-  def fetch(backend):    result = []    with open('ha.conf', 'r') as f:        flag = False        for line in f:            if line.strip().startswith('backend') and line.strip() == "backend " + backend:                flag = True                continue            if flag and line.strip().startswith('backend'):                break            if flag and line.strip():                result.append(line.strip())     return result  def add(backend, record):    result = fetch(backend)    if not result:        # 无backend,无record        pass    else:        # 有backend        if record in result:            # 记录record            pass        else:            result.append(record)            with open('ha.conf', 'r') as old, open('new.conf', 'w') as new:                continue_flag = False                for line in old:                     if line.strip().startswith('backend') and line.strip() == "backend " + backend:                        continue_flag = True                        new.write(line)                        for temp in result:                            new.write(" "*8 + temp + "\n")                        continue                     if continue_flag and line.strip().startswith('backend'):                        continue_flag = False                     if continue_flag:                        pass                    else:                        new.write(line)  def add2(backend, record):    with open('ha.conf', 'r') as old, open('new.conf', 'w') as new:        in_backend = False        has_backend = False        has_record = False        for line in old:            if line.strip().startswith('backend') and line.strip() == "backend " + backend:                has_backend = True                in_backend = True                new.write(line)                continue             if in_backend and line.strip().startswith('backend'):                if not has_record:                    new.write(" "*8 + record + '\n')                new.write(line)                in_backend = False                continue             if in_backend and line.strip() == record:                has_record = True                new.write(line)                continue             if line.strip():                new.write(line)         if not has_backend:            # 写backend,写record            new.write('backend '+ backend + '\n')            new.write(' '*8 + record + '\n')  # ret = fetch("www.oldboy.org")# print(ret) # add('www.oldboy.org', "server 100.1.7.10 100.1.7.10 weight 20 maxconn 3000")# add2('www.oldboy.org', "server 100.1.7.11 100.1.7.11 weight 20 maxconn 3000")

  

转载于:https://www.cnblogs.com/yechanglv/p/6935613.html

你可能感兴趣的文章
[bzoj] 2453 维护数列 || 单点修改分块
查看>>
IIS版本变迁
查看>>
BZOJ3884: 上帝与集合的正确用法 拓展欧拉定理
查看>>
mybatis09--自连接一对多查询
查看>>
myeclipse10添加jQuery自动提示的方法
查看>>
【eclipse jar包】在编写java代码时,为方便编程,常常会引用别人已经实现的方法,通常会封装成jar包,我们在编写时,只需引入到Eclipse中即可。...
查看>>
视频监控 封装[PlayCtrl.dll]的API
查看>>
软件工程APP进度更新
查看>>
Python 使用正则替换 re.sub
查看>>
CTF中那些脑洞大开的编码和加密
查看>>
简化工作流程 10款必备的HTML5开发工具
查看>>
c++ 调用外部程序exe-ShellExecuteEx
查看>>
Java进击C#——语法之知识点的改进
查看>>
IdentityServer流程图与相关术语
查看>>
BirdNet: a 3D Object Detection Framework from LiDAR information
查看>>
icon fonts入门
查看>>
【Django】如何按天 小时等查询统计?
查看>>
HDU2191(多重背包)
查看>>
测试用例(一)
查看>>
【转】 mysql反引号的使用(防冲突)
查看>>