我想了解使用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
这种避免了中间跳。
建议/改进非常感谢!
答案 0 :(得分:1)
我会使用您可以使用rsync
来处理这个问题。scp
模块直接从Python调用subprocess
或尝试使用包装或实现rsync
通过子进程调用scp
比通过paramiko
执行所有必需的操作要容易得多。