如何将目录从一台服务器移动到其他服务器?

我有两个服务器的SSH访问权限,其中一个是空的。 如何通过SSH连接将站点目录从旧服务器移动到新服务器?

PS:在两台服务器上都是unix

我最喜欢的是rsync 。 只需复制必须复制的内容(即更改或新build)就足够智能。

 rsync -avz /source/path user@desthost:/destination/path/ 

注意最后/最后要求rsync 该path中复制(而不是在它之上)。
rsync负责pipe理你的ssh连接。 avz (典型)选项要求rsync使用归档 (tar)模式,以便recursion复制,并尽可能保留date和用户值。 v选项是详细的 ,向您展示当前正在发生的事情。 z选项将压缩(压缩)传输,以期节省时间和带宽。

rsyncfunction非常强大,被大多数专业人士使用,但是您可能需要先使用非有价值的数据进行testing,以确保path和选项符合要求。

如果您需要通过SSH等非标准端口(如2222)使用rsync,则可以使用以下命令( 请参阅本文 ):

 rsync -avz -e 'ssh -p 2222' /source/path user@desthost:/destination/path/ 

你正在寻找一个焦油pipe 。

我在另一个问题上写了一个很好的答案。 它使用SSH-Agent移动一个mysql转储: 最快的方法将多个数据库移动到新的服务器

将此与jscott的答案结合起来