【问题标题】:How can we transfer large amounts of data over a network, using Python?我们如何使用 Python 通过网络传输大量数据?
【发布时间】:2012-08-10 12:06:26
【问题描述】:

我正在执行一项任务,将大约 100 Gb 的数据(包括目录中的一千个文件和子文件夹)备份(复制)到另一台服务器。通常,对于较小的规模,我可以使用 scp 或 rsync 代替。但是,由于另一台服务器不在同一个 LAN 网络上,因此很容易需要数小时甚至数天才能完成任务。我不能在终端运行的情况下将计算机留在那里。我不认为这是最好的选择,而且我还有另一个使用 Python 的好理由 :)

是否有任何库或最佳实践可供我开始使用?因为它只是针对内部项目,我们不需要任何花哨的功能,只需要一些基本的东西,例如日志记录、容错等。

【问题讨论】:

  • “我不能把我的电脑留在那儿,让终端机运行。” - 有什么问题?你可以开始一些事情并锁定屏幕吗?或者您不想将计算机留在“那里”的任何地方?
  • 嗨,格雷格,有两个问题,是的,我正在笔记本电脑的终端上运行 scp/rsync,我最终需要移动。其次,经过数小时的运行进度,如果我的家庭网络有任何问题,很容易出现连接错误。这就是为什么我尝试在 Python 中找到一个好的解决方案。
  • 我当然会推荐 rsync,因为如果连接出现问题,它可以很容易地重新启动。您不能轻松地从停止的地方重新启动 scp。

标签: python networking file-transfer


【解决方案1】:

我认为您最好的选择是在屏幕内使用 scp 或 rsync。这样您就可以分离屏幕会话并注销,传输将继续进行。

man screen

【讨论】:

  • 嗨 pizen,这意味着我可以使用 screen 然后登录到服务器,然后启动 rsync 到另一个,然后关闭终端窗口而不停止进度?
  • 您将登录到服务器,然后使用屏幕。您将从屏幕内开始传输,分离会话并注销。然后稍后您将重新登录,恢复屏幕会话,并检查传输进度。
猜你喜欢
  • 2018-05-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多