Python:在两个远程服务器之间复制文件

时间:2016-07-20 19:10:44

标签: python python-2.7 paramiko

我想了解使用python将文件从一个远程服务器复制到另一个远程服务器的最佳方法。

我的设置看起来像这样:

+--------------+
|   Server A   |                                                                              
+--------------+                                                                 
| Build Server |
+--------------+
       | 
       |
+-------------+
|  Server B   |
+-------------+
| Python Code |
+-------------+
      |
      |
+------------+
|  Server C  |
+------------+
| App Server |
+------------+

我有几个RPM存储在构建服务器中。这些二进制文件需要传输到App服务器,以便我可以在这个盒子上安装它们。

目前我正在使用Python的Paramiko库[sftp.get和sftp.put]并从服务器A获取二进制文件到服务器B并将其从服务器B传输到服务器C.无论如何我可以构建我的代码,以便二进制文件可以直接从服务器A传输到服务器C?

更确切地说,做这样的事情:

scp -3 user1@remote1:/home/user1/file1.txt user2@remote2:/home/user2/file1.txt

这种避免了中间跳。

建议/改进非常感谢!

1 个答案:

答案 0 :(得分:1)

我会使用rsync来处理这个问题。您可以使用scp模块直接从Python调用subprocess或尝试使用包装或实现rsync

的Python模块

通过子进程调用scp比通过paramiko执行所有必需的操作要容易得多。