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()