python-paramiko实现scp上传下载
1. python-paramiko实现scp上传下载
-
Python3的paramiko同时也支持类scp的功能
- paramiko的SFTPClient可实现文件的上传、下载
- 编写部署系统的时候可以用来传包传脚本等
-
案例:paramiko基于密钥实现文件上传
-
编写paramiko基于密钥实现文件上传
#!/usr/bin/env python # _*_ coding: utf-8 _*_ # Author:shichao # File: .py import paramiko import os # 远程连接 ip和端口 transport = paramiko.Transport( '192.168.0.200', 22 ) # 连接私钥 pkey = paramiko.RSAKey.from_private_key_file( '/Users/admin/.ssh/id_rsa' ) # 连接用户和密码 transport.connect( username = 'root', pkey = pkey ) # 文件工具 sftp = paramiko.SFTPClient.from_transport(transport) # 上传文件,第一个位置是要上传的目录地址, 第二位置是要传输到服务器地址 sftp.put('/tmp/hello.sh', '/tmp/hello.sh') sftp.close() transport.close() # 验证这个文件是否存在了 result = os.system("sh /tmp/hello.sh") print(result)
-
执行结果
hello world 0
-
-
案例:paramiko基于密钥实现文件下载
-
编写paramiko基于密钥实现文件下载
#!/usr/bin/env python # _*_ coding: utf-8 _*_ # Author:shichao # File: .py import paramiko import os # 远程连接 ip和端口 transport = paramiko.Transport( '192.168.0.200', 22 ) # 连接私钥 pkey = paramiko.RSAKey.from_private_key_file( '/Users/admin/.ssh/id_rsa' ) # 连接用户和密码 transport.connect( username = 'root', pkey = pkey ) # 文件工具 sftp = paramiko.SFTPClient.from_transport(transport) # 上传文件, 第一个位置是服务器源地址,第二位置是要下载机器目标位置 sftp.get('/scripts/gethello.sh', '/tmp/gethello.sh') sftp.close() transport.close() # 验证这个文件是否存在了 result = os.system("sh /tmp/hello.sh") print(result)
-
执行结果
hello world 0
-