简单主机批量管理工具

作业需求:

1:主机分组

2:登录后显示主机分组,选择分组后查看主机列表

3:可批量执行命令,发送文件,结果实时返回

4:主机用户名密码可以不同

 

由于本机没有创建多个虚拟机,在程序的实际上传下载过程并没有验证,且没有完成批量执行命令的功能,反正与上传下载类似

func.py

import paramiko
import pickle

class haproxy(object):
    def __init__(self):
        self.host = '10.33.4.208'
        self.port = 22
        self.username = 'root'
        self.password = '123456'
        self.trans = None
        self.sftp = None
    
    def connect(self):
        self.trans = paramiko.Transport(self.host,self.port)
        self.trans.connect(username = self.username, password= self.password)
        self.sftp = paramiko.SFTPClient.from_transport(self.trans)
    
    def sftp_put(self,location_file,remote_file):
        self.sftp.put(location_file, remote_file)
    
    def sftp_get(self,remote_file,location_file):
        self.sftp.get(remote_file, location_file) 
    
    def close(self):
        self.trans.close()
    
    def run(self):
        self.connect()
        self.sftp_get('Public/love.txt', 'love.txt')
        self.close()

class group_list(object):
    def __init__(self):
        self.listfile = r'user_list'
        pass
    
    def get_groupdict(self):
        with open(self.listfile,'rb') as f:
            date_dict = pickle.load(f)
            
        return date_dict #list(date.keys())
    
    def print_list(self,list):
        for i in list:
            print(i)
        
        
if __name__ == '__main__':

    h1 = haproxy()
#     h1.run()        

#     while True:
    try:
#             username = input("Please input your username:").strip()
#             password = input("Please input your password:").strip()
        username = 'root'
        password = '123456'
        if username == h1.username and password == h1.password:
            print("****主机分组列表****")
            u1 = group_list()
            groupdict = u1.get_groupdict()
            u1.print_list(list(groupdict.keys()))
            
            #group = input("Please choose group:").strip()
            group = 'group1'
            print("****组",group,"列表****")
            userlist = list(groupdict[group].keys())
            u1.print_list(userlist)
            
            h2 = haproxy()
            for i in userlist:
                print(groupdict[group][i]['IP'])
                
                h2.host = groupdict[group][i]['IP']
                h2.port = groupdict[group][i]['port']
                h2.username = groupdict[group][i]['username']
                h2.password = groupdict[group][i]['password']
                h2.run()
                
        else:
            print("unvalid account")

    except:
        #break
        pass
                   
    

创建用户列表的文件createuser.py

'''
Created on 2018年6月26日

@author: hcl
'''
import json
import pickle

user_dict = {
    'group1':{
        'h1':{"IP":"10.33.4.208", "username":"root", "password":"123456", "port":22},
        'h2':{"IP":"10.33.4.209", "username":"root", "password":"123456", "port":22},
        'h3':{"IP":"10.33.4.210", "username":"root", "password":"123456", "port":22}
        },
    'group2':{
        'h1':{"IP":"10.33.4.211", "username":"root", "password":"123456", "port":22},
        'h2':{"IP":"10.33.4.212", "username":"root", "password":"123456", "port":22}
        },
    'group3':{
        'h1':{"IP":"10.33.4.213", "username":"root", "password":"123456", "port":22}
        }
    }

file_name = r'user_list'
"""
    生成主机列表
"""
with open(file_name,'wb') as f:
    f.write(pickle.dumps(user_dict))
    f.flush()
    
"""
    载入主机列表
"""    
with open(file_name,'rb') as f:
    date = pickle.load(f)
print(list(date.keys()))

六、有兴趣接电子设计相关小型项目的请加下群,每个项目一般在1000元以内,非诚勿扰

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
史上图形最简单Linux-Unix-Windows批量管理服务器软件工具 Windows 下 批量管理,批量监控,批量操作,批量安全扫描 linux Solaris Aix HP-Unix Windows 等操作系统界面最简洁的图形工具。 批量执行多台服务器命令,批量修改密码,批量执行服务器脚本,批量上传文件,解放你的双手,五分钟批量执行上千台服务器命令。 Unix 实验室服务器批量管理监控系统,简称 UnixShellManager UnixShellManager 分简装版, 标准版,企业版。 UnixShellManager 实验室批量管理监控系统,能够实现对 windows 系统远程桌面登录管理操作,VNC 远程管理操作 可以实现对WINDOWS,LINUX, UNIX, 图形界面登陆管理操作,以上均可实现自动登录系统,,登录用户,根据权限不同,显示不同的操作界面,有分组管理,可以有效分类的对服务器,工作站,进行分实验室,分组管理,Unix linux服务器远程批量操作模式,批量操作模式 可以多线程操控Unix,Linux,服务器执行命令,获 取状态,输出命令执行结果,可以实现大批量修改文 件,关机,解放双手,实现管理自动化。VNC 图形界面能够实现自动登录系统,windows远程登录界面能够远程操作windows系统,自动登录。核心监控服务器模式,可以监控服务器的的CPU.IO.DISK. MESSAGES. MEMORY. SERVICES. LOAD. HARDWARE. LOGIC DISK STATUS. 等等一系列 服务务器硬件和软件服务。 用户名:Admin 密码:qwe0987

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值