• module04-2-简单主机批量管理工具


    需求


    1. 运行程序列出主机组或者主机列表
    2. 选择指定主机或主机组
    3. 选择让主机或者主机组执行命令或者向其传输文件(上传/下载)
    4. 充分使用多线程或多进程
    5. 不同主机的用户名密码、端口可以不同

    目录结构


    简单主机批量管理工具
    ├ bin # 执行文件目录
    | └ SBHM.py # 执行程序
    ├ conf # 配置文件目录
    | ├ hosts.ini # 配置文件。目前主要保存主机连接相关信息
    | └ init_conf.py # 配置文件格式化程序
    └ core # 程序核心代码位置
    └ main.py # 主逻辑交互程序


    代码

    
    
    import os,sys
    
    basepath = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
    sys.path.insert(0,basepath)
    
    from core import main
    main.main()
    SBHM.py
    
    
    import configparser
    
    c = configparser.ConfigParser()
    
    c['proxy']={
        'proxy1' : {
            'ip':'192.168.1.76',
            'port':22,
            'username':'root',
            'password':'123456'
        },
        'proxy2' : {
            'ip': '192.168.1.12',
            'port': 51123,
            'username': 'root',
            'password': '123456'
        },
        'proxy3': {
            'ip': '192.168.1.34',
            'port': 22,
            'username': 'root',
            'password': '123456'
        }
    }
    
    c['upstream'] = {
        'img': {
            'ip': '192.168.1.76',
            'port': 22,
            'username': 'root',
            'password': '123456'
        },
        'video': {
            'ip': '192.168.1.12',
            'port': 51123,
            'username': 'root',
            'password': '123456'
        },
        'static': {
            'ip': '192.168.1.34',
            'port': 22,
            'username': 'root',
            'password': '123456'
        }
    }
    
    with open('hosts.ini','w',encoding='utf-8') as f:
        c.write(f)
    init_conf.py
    import configparser
    
    c = configparser.ConfigParser()
    
    c['proxy']={
        'proxy1' : {
            'ip':'192.168.1.76',
            'port':22,
            'username':'root',
            'password':'123456'
        },
        'proxy2' : {
            'ip': '192.168.1.12',
            'port': 51123,
            'username': 'root',
            'password': '123456'
        },
        'proxy3': {
            'ip': '192.168.1.34',
            'port': 22,
            'username': 'root',
            'password': '123456'
        }
    }
    
    c['upstream'] = {
        'img': {
            'ip': '192.168.1.76',
            'port': 22,
            'username': 'root',
            'password': '123456'
        },
        'video': {
            'ip': '192.168.1.12',
            'port': 51123,
            'username': 'root',
            'password': '123456'
        },
        'static': {
            'ip': '192.168.1.34',
            'port': 22,
            'username': 'root',
            'password': '123456'
        }
    }
    
    with open('hosts.ini','w',encoding='utf-8') as f:
        c.write(f)
    main.py


  • 相关阅读:
    hdu_6836 Expectation
    hdu_6820 Tree
    luogu P1039 侦探推理
    自己动手实现区块链
    第六章 钱包管理界面和区块链浏览器
    第五章 自己动手写比特币之交易中继
    第四章 自己动手写比特币之钱包
    第三章 自己动手写区块链之交易
    第二章 工作量证明和挖矿
    第一章:最小可行区块链
  • 原文地址:https://www.cnblogs.com/jailly/p/7218077.html
Copyright © 2020-2023  润新知