gpt4 book ai didi

python paramiko利用sftp上传目录到远程的实例

转载 作者:qq735679552 更新时间:2022-09-28 22:32:09 25 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章python paramiko利用sftp上传目录到远程的实例由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

网上大部分都是上传文件,于是个人参照网上一些博客的内容,写了一个把windows上目录上传到远程linux的一个小程序.

下面是代码:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
class ExportPrepare( object ):
  def __init__( self ):
  pass
 
  def sftp_con( self ):
   t = paramiko.Transport(( self .ip, self .port))
   t.connect(username = self .username, password = self .password)
   return t
 
  # 找到所有你要上传的目录已经文件。
  def __get_all_files_in_local_dir( self , local_dir):
   all_files = list ()
 
   if os.path.exists(local_dir):
    files = os.listdir(local_dir)
    for x in files:
     filename = os.path.join(local_dir, x)
     print "filename:" + filename
     # isdir
     if os.path.isdir(filename):
      all_files.extend( self .__get_all_files_in_local_dir(filename))
     else :
      all_files.append(filename)
   else :
    print '{}does not exist' . format (local_dir)
   return all_files
 
  # Copy a local file (localpath) to the SFTP server as remotepath
  def sftp_put_dir( self ):
   try :
  #本地test目录上传到远程root/usr/下面
  local_dir = "c:/test"
  remote_dir = "/root/usr/test"
 
    t = self .sftp_con()
    sftp = paramiko.SFTPClient.from_transport(t)
    # sshclient
    ssh = paramiko.SSHClient()
    ssh.load_system_host_keys()
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    ssh.connect( self .ip, port = self .port, username = self .username, password = self .password, compress = True )
    ssh.exec_command( 'rm -rf ' + remote_dir)
    if remote_dir[ - 1 ] = = '/' :
     remote_dir = remote_dir[ 0 : - 1 ]
    all_files = self .__get_all_files_in_local_dir(local_dir)
    for x in all_files:
     filename = os.path.split(x)[ - 1 ]
     remote_file = os.path.split(x)[ 0 ].replace(local_dir, remote_dir)
     path = remote_file.replace( '\\', ' / ')
  # 创建目录 sftp的mkdir也可以,但是不能创建多级目录所以改用ssh创建。
     tdin, stdout, stderr = ssh.exec_command( 'mkdir -p ' + path)
     print stderr.read()
     remote_filename = path + '/' + filename
     print u 'Put files...' + filename
     sftp.put(x, remote_filename)
    ssh.close()
   except Exception, e:
    print e
 
 
if __name__ = = '__main__' :
  export_prepare = ExportPrepare()
  export_prepare.sftp_put_dir()

比较匆忙,不足之处可以指出,共同进步.

以上这篇python paramiko利用sftp上传目录到远程的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我.

原文链接:https://blog.csdn.net/zdpyouzhe/article/details/52953677 。

最后此篇关于python paramiko利用sftp上传目录到远程的实例的文章就讲到这里了,如果你想了解更多关于python paramiko利用sftp上传目录到远程的实例的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com