使用paramiko将文件从远程目录复制到远程子目录

问题描述 投票:0回答:2

如何将远程服务器/maindir/fil1.txt中的文件复制到子目录/maindir/subdir/file1.txt我有使用sftp创建的paramiko。但它始终检查要从中复制的本地路径。

filename_full_path='/maindir/fil1.txt'
destfilename_full_path='/maindir/subdir/file1.txt'
sftp.put(filename_full_path, destfilename_full_path)

如何告诉sftp本地路径也在远程主机中?

python sftp paramiko
2个回答
0
投票

您可以尝试以下方式

   a=paramiko.SSHClient()
   a.set_missing_host_key_policy(paramiko.AutoAddPolicy())
   a.connect('ip',username='user',password='passw')
   stdin, stdout, stderr = a.exec_command("cp /sourc/file /target/file")

2
投票

在广泛的SFTP服务器实现(特别是OpenSSH)中,不支持远程复制文件。因此即使Paramiko确实支持它(它没有),它可能对你没有任何用处。

SFTP有copy-file扩展,但很少有服务器/客户端库支持它。 见draft-ietf-secsh-filexfer-extensions-00

备择方案:

  • 下载文件夹并将其重新上载到新位置(纯SFTP解决方案)
  • 在“exec”通道中使用cp命令(不再是SFTP,需要shell访问) - 使用SSHClient.exec_command
© www.soinside.com 2019 - 2024. All rights reserved.