Python不同电脑之间传输文件实现类似scp功能不输密码

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python不同电脑之间传输文件实现类似scp功能不输密码相关的知识,希望对你有一定的参考价值。

技术分享

 

SCP vs SFTP

通过paramiko还可以传输文件,如何通过paramiko在计算机之间传输文件,通过阅读官方文档,发现有如下两种方式:

sftp = paramiko.SFTPClient.from_transport(ssh.get_transport())
sftp = ssh.open_sftp()

即新建一个SFTPClient对象,该对象复用之前的SSH连接,因此,我们使用sftp传输文件时,不需要再次进行用户认证。

  • 文件上传

      In [59]: sftp.put(‘memory.py‘, ‘memory.py‘)
      Out[59]: <SFTPAttributes: [ size=288 uid=1000 gid=1000 mode=0100644 atime=1435391914 mtime=1435391914 ]>
  • 文件下载

      In [60]: sftp.get(‘memory.py‘, ‘backup.py‘)
  • 执行命令

    paramiko并没有提供一个叫做scp的子模块,如果我们希望在计算机之间传输数据,可以通过sftp(sftp实现了scp所有的功能,也就没有必再实现一个scp)传输文件,还可以通过sftp执行命令,如下所示:

      In [44]: sftp.listdir()
      Out[44]:
      [‘.viminfo‘,
      ‘.bash_logout‘,
      ‘.bash_history‘,
      ‘AgentBackkup_2015-06-10‘,
      ‘AgentBackup‘,
      ‘rdsAgent‘]
    
      In [45]: sftp.rename(‘AgentBackkup_2015-06-10‘, ‘AgentBackkup_2015-06-11‘)
    
      In [46]: sftp.listdir()
      Out[46]:
      [‘AgentBackkup_2015-06-11‘,
      ‘.viminfo‘,
      ‘.bash_logout‘,
      ‘.bash_history‘,
      ‘AgentBackup‘,
      ‘rdsAgent‘]

sftp提供了很多命令,具体内容可以参考官方文档 。

以上是关于Python不同电脑之间传输文件实现类似scp功能不输密码的主要内容,如果未能解决你的问题,请参考以下文章

mac下用scp命令实现本地文件与服务器Linux文件之间的相互传输

两个linux之间拷贝文件及文件夹

SCP——传输文件的命令

使用scp命令实现服务器之间文件传输

scp

rsync工作原理 及 部署