用python打开(并维护)远程连接

时间:2011-10-13 16:07:09

标签: python sockets ssh scp

我正在使用Python来传输(通过scp)和数据库大量的文件。我传输文件的其中一个服务器具有奇怪的ssh配置规则,可以从单个位置停止过多的ssh请求。这样做的结果是我的python脚本,当前循环遍历文件并通过os.system复制,在传输了几个文件后挂起。

Python有没有办法打开服务器的ssh或其他连接,以便传输的每个文件都不需要ssh登录的实例?

谢谢,

3 个答案:

答案 0 :(得分:2)

您可能想要查看paramiko模块。

使用它的Copy files over SSH using paramiko食谱可能会有所帮助。

答案 1 :(得分:1)

在Python模块Paramiko中查看SFTP。您可以在一个会话中执行多个文件传输。

答案 2 :(得分:0)

这不是特定于python的,但它可能取决于你可以使用哪些库。

您需要的是通过单个连接发送文件的方法。 (但这可能更适合超级用户或者是severfault.com。)

  • 在本地创建tarfile,上传并解压缩到目标?
    • 也许你甚至可以远程运行'tar xz'并通过SSH在stdin上传文件? (正如MichaelDillon在评论中所说,Python可以动态创建tar文件......)
  • SFTP是一种选择吗?
  • 通过SSH进行Rsync?
  • Twisted是一个异步库,可以同时处理多个套接字/连接。但是,你的解决方案可能有点过分了,

希望它有所帮助。