![如何将目录从一台服务器移动到另一台服务器?](https://linux22.com/image/522606/%E5%A6%82%E4%BD%95%E5%B0%86%E7%9B%AE%E5%BD%95%E4%BB%8E%E4%B8%80%E5%8F%B0%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%A7%BB%E5%8A%A8%E5%88%B0%E5%8F%A6%E4%B8%80%E5%8F%B0%E6%9C%8D%E5%8A%A1%E5%99%A8%EF%BC%9F.png)
我可以通过 SSH 访问这两台服务器,其中一台是空的。如何通过 SSH 连接将站点目录从旧服务器移动到新服务器?
PS:两台服务器都是unix
答案1
我最喜欢的是rsync
。它足够智能,只复制需要复制的内容(即更改的内容或新内容)。
rsync -avz /source/path user@desthost:/destination/path/
注意/
最后的命令 rsync 进行复制里面该路径(而不是路径上方)。
rsync
负责为您管理 ssh 连接。avz
(典型)选项要求rsync
使用档案(tar)模式,以便递归复制,并尽可能保留日期和用户值。选项v
是冗长显示当前正在发生的事情。该z
选项将压缩传输,以节省时间和带宽。
rsync
非常强大,被大多数专业人士使用,但是您可能需要先使用非有价值的数据对其进行测试,以确保路径和选项符合要求。
如果您需要在非标准端口(如 2222)上通过 SSH 使用 rsync,则可以使用以下命令(参见此文章):
rsync -avz -e 'ssh -p 2222' /source/path user@desthost:/destination/path/
答案2
你正在寻找焦油管。
答案3
我在另一个问题中写了一个很有效的答案。它使用 SSH-Agent 来移动 mysql 转储:将多个数据库移动到新服务器的最快方法
将此与 jscott 的答案结合起来