zoukankan      html  css  js  c++  java
  • 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


  • 相关阅读:
    将博客搬至CSDN
    操作excel文件爬取nvd.nist数据
    windows下如何制作和应用数字签名证书 全流程
    python虚拟环境
    Linux系统中python默认版本为python2.7,修改为python3 项目上传码云
    删除github中某个文件夹
    国外的一些测试技术网站
    PYTHON读取EXCEL内容再转变成HTML添加到OUTLOOK中
    数据结构之顺序表概念篇
    Python内置类型性能分析
  • 原文地址:https://www.cnblogs.com/jailly/p/7218077.html
Copyright © 2011-2022 走看看