【发布时间】:2010-07-02 05:57:53
【问题描述】:
我有两台服务器,其中一台每 15 分钟更新一次包含 100k 个域的 DNSBL。我想通过 Python 脚本处理这些域,其中包含来自 Safebrowsing、Siteadvisor 和其他服务的信息。不幸的是,带有 DNSBL 的服务器相当慢。有没有办法可以在 Python 中使用 SSH 从其他服务器传输文件?
【问题讨论】:
我有两台服务器,其中一台每 15 分钟更新一次包含 100k 个域的 DNSBL。我想通过 Python 脚本处理这些域,其中包含来自 Safebrowsing、Siteadvisor 和其他服务的信息。不幸的是,带有 DNSBL 的服务器相当慢。有没有办法可以在 Python 中使用 SSH 从其他服务器传输文件?
【问题讨论】:
如果您传输的只是文件(和目录),为什么不直接在 ssh 上使用rsync(也许在 bash 脚本中)。一种经过验证的成熟方法。
或者您可以使用sshfs(熔断器)将远程文件系统(通过ssh)挂载到您自己的文件系统中,然后使用pyrobocopy(在Python 中实现基本版本的rsync 功能)来传输文件。
如果您不需要增量复制,您可以走简单的路线:使用 sshfs(上面的链接)挂载远程文件系统,然后使用 shutil.copytree 复制正确的目录。
或者另一种选择:使用paramiko Python ssh 模块实现它。
【讨论】:
paramiko 是纯 python,我猜这是最接近的(无需重新实现它的所有 ssh 连接功能)。
有一个名为pexpect 的模块非常好。
这允许您使用 ssh、telnet 等。它还支持 ftp,这在传输文件时可能很方便。
【讨论】: