如何将非常大的文件/目录从一台主机“离线”复制到另一台主机?

如何将非常大的文件/目录从一台主机“离线”复制到另一台主机?

我打算很快为我管理的一些资源密集型网站购买一台 vps 服务器。我住在一个互联网速度为 1Mb/s 的奢侈品和持续不断的电力供应都只是神话的国家。

以下是我想要实现的目标:

  • 如何通过 SSH/SCP 将文件和目录从源服务器复制到目标服务器。
  • 即使我的互联网断开或电源中断,如何仍然可以在服务器之间复制文件。
  • 如果我关闭终端窗口,如何让文件仍在两个服务器之间复制。

我知道可以通过 scp 进行复制,但当我离线时它似乎无法继续工作。

答案1

rsync -azvP source_directory user@remote:remote_directory

应该可以让你在两台计算机之间复制文件,同时在发生中断时保存进度。

这里也有每个标志的解释。http://explainshell.com/explain?cmd=rsync+-azvP

如果您希望允许此命令在未登录时在服务器上运行,您可以将上述命令传递给该nohup命令。您还可以在 tmux 会话中运行此命令,这样您就可以在登录到计算机时附加会话来监控进度(或重新启动命令)。

tmux您可以通过在服务器上键入来启动 tmux 会话。然后,您可以运行 rsync 命令,并通过键入CTRL+b和 来断开 tmux 会话d。注销不会影响复制过程。当您重新登录时,您可以键入tmux attach,并且您将能够查看复制操作的进度。

希望这有帮助!如果我能澄清任何事情,请告诉我。

答案2

我强烈建议您看一下使用 rsync 命令。rsync 命令很有用,因为它可以轻松恢复传输。默认情况下,Rsync 通过 SSH 传输运行,您只需要在客户端和服务器上安装 rsync 二进制文件即可。

Rsync 会检测已传输的内容并仅传输文件,以及尚未传输的文件部分。

答案3

我相信这应该可以解决问题:

nohup scp -r big-folder remote-machine:/home/user/ &

此命令启动复制过程,并在您注销后继续复制。

相关内容