module04-2-簡單主機批量管理工具
阿新 • • 發佈:2017-07-21
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,init_conf.py‘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)
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-簡單主機批量管理工具