1. 程式人生 > >module04-2-簡單主機批量管理工具

module04-2-簡單主機批量管理工具

ont pro 運行程序 用戶 __file__ font 執行命令 主機 代碼位置

需求


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



module04-2-簡單主機批量管理工具