Python - paramiko 远程ssh执行

1 执行ssh命令

import paramiko


class Monitor:
    def __init__(self, ip, user, passwd):
        # 创建一个ssh的客户端,用来连接服务器
        self.client = paramiko.SSHClient()
        self.ip = ip
        self.user = user
        self.passwd = passwd

    def connect(self):
        # 创建一个ssh的白名单并加载
        self.client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
        # 连接服务器
        self.client.connect(hostname=self.ip, port=22, username=self.user, password=self.passwd)

    def run_command(self, command):
        stdin, stdout, stderr = self.client.exec_command(command)
        error = stderr.read().decode("utf-8")
        message = stdout.read().decode('utf-8')
        return error, message

    def close(self):
        self.client.close()

2 文件上传与下载

import paramiko


class Trans:
    def __init__(self, ip, user, passwd):
        self.ip = ip
        self.user = user
        self.passwd = passwd
        self.trans = paramiko.Transport(ip, 22)

    def connect(self):
        self.trans.connect(username=self.user, password=self.passwd)
        self.sftp = paramiko.SFTPClient.from_transport(self.trans)

    def upload(self, localFile, remoteFile):
        self.sftp.put(localFile, remoteFile)

    def download(self, remoteFile, localFile):
        self.sftp.get(remoteFile, localFile)

    def close(self):
        self.sftp.close()

猜你喜欢

转载自blog.csdn.net/weixin_43932656/article/details/106901720