Python之--paramiko实例
一.基于SFTPClient类连接sshd服务器:
特点: 一般用于实现对远程服务器的上传, 下载和对远程目录文件的操作
1 import pramiko 2 3 hostname = '172.24.0.110' 4 username = 'carl' 5 password = '321123' 6 port = 22 7 remote_dir = '/data/sftp/' 8 local_dir = '/data/DownloadData' 9 try: 10 trans = paramiko.Transport((host, port)) 11 trans.connect(username=username, password=password) 12 sftp = paramiko.SFTPClient.from_transport(trans) 13 # 下载文件 14 sftp.get(remote_dir, local_dir) 15 #上传文件 16 sftp.put(remote_dir, local_dir) 17 # 打印目录列表 18 print(sftp.listdir('/home')) 19 except Exception e: 20 print(str(e))
二.通过SSHClient类连接
特点: SSHClient类是SSH服务会话的高级表示,封装了传输、通道以及SFTPClient的校验、建立方法,通常用于执行命令
1 import paramiko 2 hostname = '172.24.0.110' 3 username = 'carl' 4 password = '321123' 5 # 创建一个SSH客户端client对象 6 ssh = paramiko.SSHClient() 7 # 获取客户端host_keys,默认~/.ssh/known_hosts, 非默认路径需指定 8 ssh.load_host_keys() 9 # 创建ssh连接 10 ssh.connect(hostname=hostname, username=username, password = password) 11 # 调用远程执行命令的方法 12 stdin, stdout, stderr = ssh.exec_command('cd /data/sftp') 13 # 打印命令执行结果, 得到python列表形式 14 # print(stdout.read()) 15 print(stdout.readlines()) 16 # 关闭ssh连接 17 ssh.close()
github地址: https://github.com/haha479/Note/blob/master/learning_module/ftplibAndparamiko.txt