一、传输单个文件到Linux服务器
1
2
3
4
5
6
7
8
9
10
|
import paramiko
transport = paramiko.Transport(( 'host' , 22 ))
transport.connect(username = 'root' ,password = '123' )
sftp = paramiko.SFTPClient.from_transport(transport)
sftp.put( 'D:\Pycharm\hadoop_spark\ssh_files\id_rsa' , '/usr/local/id_rsa' )
transport.close()
#D:\Pycharm\hadoop_spark\ssh_files\id_rsa 本地路径,(windows)
#/usr/local/id_rsa 远端服务器路径,(Linux)
#两边路径必须都写上文件名
|
二、传输整个目录到Linux服务器
paramiko默认不支持传输目录,我们需要借助os.walk,在Unix,Windows中有效。
os.walk() 方法用于通过在目录树种游走输出在目录中的文件名,向上或者向下。
实例:
1
2
3
4
5
6
7
8
9
10
11
|
import os
import paramiko
transport = paramiko.Transport(( 'host' , 22 ))
transport.connect(username = 'root' ,password = '123' )
sftp = paramiko.SFTPClient.from_transport(transport)
for path in dir_list:
for root, dirs, files in os.walk( 'D:/Pycharm/hadoop_spark/hadoop_config/' ):
for i in files:
sftp.put( 'D:/Pycharm/hadoop_spark/hadoop_config/' + i, '/usr/local/' + i)
transport.close()
|