300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > python ssh远程连接服务器并执行命令或相关操作

python ssh远程连接服务器并执行命令或相关操作

时间:2020-08-15 16:00:43

相关推荐

python ssh远程连接服务器并执行命令或相关操作

import paramikoclass SSHConnection:# 初始化连接创建Transport通道def __init__(self, host='127.0.0.1', port=22, user='root', pwd='root'):self.host = hostself.port = portself.user = userself.pwd = pwdself.__transport = paramiko.Transport((self.host, self.port))self.__transport.connect(username=self.user, password=self.pwd)self.sftp = paramiko.SFTPClient.from_transport(self.__transport)# 关闭通道def close(self):self.sftp.close()self.__transport.close()# 上传文件到远程主机def upload(self, local_path, remote_path):self.sftp.put(local_path, remote_path)# 从远程主机下载文件到本地def download(self, local_path, remote_path):self.sftp.get(remote_path, local_path)# 在远程主机上创建目录def mkdir(self, target_path, mode='0777'):self.sftp.mkdir(target_path, int(mode))# 删除远程主机上的目录def rmdir(self, target_path):self.sftp.rmdir(target_path)# 查看目录下文件以及子目录(如果需要更加细粒度的文件信息建议使用listdir_attr)def listdir(self, target_path):return self.sftp.listdir(target_path)# 删除文件def remove(self, target_path):self.sftp.remove(target_path)# 查看目录下文件以及子目录的详细信息(包含内容和参考os.stat返回一个FSTPAttributes对象,对象的具体属性请用__dict__查看)def listdirattr(self, target_path):try:_list = self.sftp.listdir_attr(target_path)except BaseException as e:print(e)_list = []return _list# 获取文件详情def stat(self, remote_path):return self.sftp.stat(remote_path)# SSHClient输入命令远程操作主机def cmd(self, command):ssh = paramiko.SSHClient()ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy)ssh._transport = self.__transportstdin, stdout, stderr = ssh.exec_command(command)result = stdout.read()print(result)return resultif __name__ == '__main__':sc = SSHConnection(host="192.168.0.50", port=22, user="dogs", pwd="xxxxxxxxxx")sc.cmd("pwd")

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。