我打算很快为我管理的一些资源密集型网站购买一台 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/ &
此命令启动复制过程,并在您注销后继续复制。