paramiko上传文件到Linux

一、传输单个文件到Linux服务器

import paramiko
transport = paramiko.Transport(('host',22))
transport.connect(username='root',password='123')
sftp = paramiko.SFTPClient.from_transport(transport)
sftp.put('D:Pycharmhadoop_sparkssh_filesid_rsa','/usr/local/id_rsa')
transport.close()

#D:Pycharmhadoop_sparkssh_filesid_rsa      本地路径,(windows)
#/usr/local/id_rsa                             远端服务器路径,(Linux)
#两边路径必须都写上文件名

二、传输整个目录到Linux服务器

paramiko默认不支持传输目录,我们需要借助os.walk,在Unix,Windows中有效。

os.walk() 方法用于通过在目录树种游走输出在目录中的文件名,向上或者向下。

实例:

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

原文地址:https://www.cnblogs.com/Z-style/p/5961422.html