09.小实战03

需求:修改haproxy配置文件

代码实现:

# 查询
def serach(str):
    with open("ha.cnf", ‘r‘) as f:
        flag = False
        for line in f:
            if flag == True:
                return line
                break
            if line.strip() == "backend %s" % str:
                flag = True
    return False

# 插入
def insert(str):
    istr = eval(str)  # 将字符串转字典
    if serach(istr[‘backend‘]) == False:
        with open("ha.cnf", "a") as f:
            f.write(‘‘‘\nbackend %s \n\t\tserver %s weight %s maxconn %s‘‘‘ % (istr[‘backend‘], istr[‘server‘], istr[‘weight‘], istr[‘maxconn‘]))
    else:
        print("this line have exist!")

# 删除
def delete(str):
    if serach(str) != False:
        with open("ha.cnf", "r") as f, open("ha.temp", "w") as ftemp:
            flag = False
            for line in f:
                if line.strip() == "backend %s" % str:
                    flag = True
                else:
                    if flag != True:
                        ftemp.write(line)
                    else:
                        flag = False

# 选择操作
select = input("please select:\n 1.search 2.insert 3.delete\n")

if select == "1":
    node = input("\nnode:")
    a = serach(node)
    print(a)
elif select == "2":
    insert("{‘backend‘: ‘www.baidu.com‘, ‘server‘: ‘1.1.1.1‘, ‘weight‘: ‘20‘, ‘maxconn‘: ‘3000‘}")
elif select == "3":
    a = input("\nnode:")
    delete(a)

配置文件:ha.cnf

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 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 www

backend www.oldboy.org
        server 100.1.7.9 weight 20 maxconn 3000

backend abc
        server 1.1.1.1 weight 20 maxconn 3000

backend www.baidu.com
        server 1.1.1.1 weight 20 maxconn 3000
时间: 2024-10-03 22:29:13

09.小实战03的相关文章

C语言基础课程 第一课 Linux环境配置小实战httpserver

?? C语言基础课程 第一课 Linux环境配置小实战httpserver 首先环境需要的是redhat虚拟机操作系统 打开redhat 防火墙 2.将WWW(HTTP)勾选上 3.点击apply 点击是 4.切换到root用户 输入正确的root密码 5. 启动http服务 6.输入ifconfig 查看当前ip 痛 7.通过分析我们知道 他是一个局域网的ip   windows可以通过net 或者 主机模式与Linux进行通信 如果不想改变本地ip地址的话  我们需要改变虚拟机的ip地址 和

css通用小笔记03——浏览器窗口变小 div错位的问题

我最近写网页的时候,经常碰到一个普遍的问题,经过我的查阅和尝试,终于解决了这一问题,这里有两种方法提供给大家,如果博友还有更好的方法,欢迎补充. 一.使用min-width属性: 我们先看看下面这段代码(html): 1 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 2 <head> 3 <title>无标题文档</

SQL实战——03. 查找各个部门当前(to_date=&#39;9999-01-01&#39;)领导当前薪水详情以及其对应部门编号dept_no

查找各个部门当前(to_date='9999-01-01')领导当前薪水详情以及其对应部门编号dept_noCREATE TABLE `dept_manager` (`dept_no` char(4) NOT NULL,`emp_no` int(11) NOT NULL,`from_date` date NOT NULL,`to_date` date NOT NULL,PRIMARY KEY (`emp_no`,`dept_no`));CREATE TABLE `salaries` (`emp_

python小实战之分配ip

一.背景介绍 由于工作需要,管理着公司的全球机房ip,其他部门同事提取工单需要我这边协助分配一些ping不通的ip来使用.故而有时候会出现大工作量的情况.今日值班正好不巧,碰见同事需要分配16*64个ip,所以身为小菜的我花了1个小时写了的小程序以分配ip,特此记录以便后期回顾优化,也欢迎各位指点优化下. 二.涉及知识点 os模块,使python可以与系统进行交互执行命令. os.system()    #执行系统命令并返回状态码 ##系统帮助文档 >> help(os.system) Hel

网络爬虫(5)--小实战

到目前为止,我们学习了如何访问远程网站,如何解析页面内容,是时候开始应用一下了.在这里,我们以通过http://www.heibanke.com/lesson/crawler_ex00/为例,这个网站会告诉我们爬虫应该向哪里链接,直到爬到通过为止. 首先我们需要查看网页的源代码,确定我们需要的信息在哪里.通过查看源代码,我们可以知道,我们关注的信息应该是h3标签文本中的数字. 因此我们的任务就是提取出这个数字,然后链接到新的地址,直到完成为止. 首先我们从BeautifulSoup中提取出标签h

d3可视化实战03:神奇的superformula

需求驱动实现 前文讲过了D3的数据驱动机制,中间所举的例子都很简单.例如那个demo里面,绑定的数据是一个简单的数组,实现的图元也仅仅是一堆用SVG画的circle.但是现实世界中我们往往会遇到复杂的需求,例如我就遇到了这样一个需求:数据是一个复杂的对象数组,而与之绑定的图元是一个可变图形.该图形可以根据与他绑定的数据中的具体参数,在圆形.方块.三角之间切换,并且要求过渡自然. 面对这个需求,最直接的做法是把圆形.方块.三角用SVG的<circle>圆形标签,<rect>矩形标签以

项目实战03:Keepalived 实现高可用

目录 实验一:实现keepalived主从方式高可用基于LVS-DR模式的应用实战: 1.环境准备: 2.在lvs-server-master 主上 3.在lvs-server-backup 从上 4.在real server 上 5.测试 实验二:实现keepalived双主方式高可用基于LVS-DR模式的应用实战: 1.实验环境,基本同上 2.在lvs-server1 上,基本同上,就是加了一个实例段 3.在lvs-server2 上,基本同1,就是把实例的主从调换一下 4.在real se

编程题小练习 03

求二叉树的深度和宽度 求二叉树的深度和宽度,深度为最深的层数,宽度为最宽的层宽度: #include <iostream> #include <queue> #include <algorithm> using namespace std; typedef struct tagBiNode { char data; struct tagBiNode *left; struct tagBiNode *right; } BiNode; int getWidth(BiNode

Struts2_BBS2009小实战

Struts2_BBS2009准备:链接: http://pan.baidu.com/s/1nvTZz9R 密码: 875a ext3.0_直接部署运行:链接: http://pan.baidu.com/s/1c1C0CIc 密码: dd47 Struts2_BBS2009_初步了解ExtJS:链接: http://pan.baidu.com/s/1eSBqN78 密码: nadk Struts2_BBS2009_建立项目框架:链接: http://pan.baidu.com/s/1o7L9EO