python操作多台服务器
admin
2023-07-05 12:04:59
0
"""主代码 ""
import settings
import paramiko
import threading

class wang(object):
    def __init__(self, host, port, username, password, cmd):
        self.host = host
        self.port = port
        self.username = username
        self.password = password
        self.cmd = cmd

    def commad(self):
        ssh = paramiko.SSHClient()
        ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
        ssh.connect(hostname=self.host, port=self.port, username=self.username, password=self.password)
        stdin, stdout, stderr = ssh.exec_command(self.cmd)
        res, err = stdout.read(), stderr.read()
        result = res if res else err
        print(result.decode())
        ssh.close()

def show_group():
    for index, key in enumerate(settings.msg_dic):
        print(index +1 , key, len(settings.msg_dic[key]))
        host_ip = input(">>(eg:group1)").strip()
        host_ip_drt = settings.msg_dic[host_ip]
        print(host_ip_drt)
        for i in host_ip_drt:
            print(i, host_ip_drt[i]["IP"])
        return host_ip_drt
def run():
    setsit = show_group()
    thread_list = []
    print(setsit)
    while True:
        cmd  = input(">>(cmd)").strip()
        for i in setsit:
            cc = wang(setsit[i]["IP"], setsit[i]["port"], setsit[i]["username"], setsit[i]["password"], cmd)
            #cc.commad()
            t = threading.Thread(target=cc.commad)
            t.start()
            thread_list.append(t)
            print("-"*50)
        for t in thread_list:
            t.join()
            print("-" * 50)

run()

#settings 模块
msg_dic = {
    "group1":{
        "h2" :{"IP": "192.168.3.200", "username": "root", "password": "sadmin", "port": "22"},
        "h3" :{"IP": "192.168.3.201", "username": "root", "password": "sadmin", "port": "22"}
    }
    "group2":{
        "h2" :{"IP": "192.168.3.203", "username": "root", "password": "sadmin", "port": "22"},
        "h3" :{"IP": "192.168.3.204", "username": "root", "password": "sadmin", "port": "22"}
    }
}

相关内容

热门资讯

我国科学家为细胞信号“导航”开... 新华社济南5月31日电(记者张力元)人体细胞犹如一座精密的通信城市,每天都有大量“指令”穿梭传递,调...
极端大风突袭哈尔滨!过山车停摆... 极目新闻记者 詹钘5月31日,受强对流天气影响,哈尔滨国际会展中心体育场相关设施受到损坏,原计划当晚...
三原电缆取得电缆接头连接用防护... 国家知识产权局信息显示,上海三原电缆附件有限公司取得一项名为“一种电缆接头连接用防护结构”的专利,授...
原创 识... 还是那句话,机圈苦大屏久已…… 虽然大屏有大屏的美,但是小屏也有小屏的俏。在大屏旗舰占据主流的手机市...
玄戒技术取得分频电路专利,实现... 国家知识产权局信息显示,北京玄戒技术有限公司取得一项名为“分频电路、分频器、射频芯片和电子设备”的专...
为什么今年香会基调明显变了 5月29日—31日在新加坡举行的第23届香格里拉对话会(简称“香会”),见证着元首引领下大国关系继续...
成本几毛钱、假驱蚊液香精兑水,... 入夏升温,蚊虫进入活跃期,驱蚊防护成为民生刚需,《财经调查》持续接到消费者投诉,他们买到的多款网红驱...
越来越多80后90后,正在丧失... 六一儿童节到来之际,朋友圈里开始出现一种熟悉的热闹。有人晒出零食礼包,有人半开玩笑地向伴侣讨礼物,还...
洋保电子取得用于低温环境的电气... 国家知识产权局信息显示,洋保电子(太仓)有限公司取得一项名为“一种用于低温环境的电气柜”的专利,授权...
中日韩飞手争霸宁波!2026无... 潮新闻客户端 记者 陈冲 通讯员 朱凝 5月31日,2026小遛·无人机竞速世界杯(中国·宁波鄞州站...