如何将目录从一台Linux服务器复制到另一台服务器上,并且期限最短?

我有一个相当大的目录在一台服务器上(超过4000个文件),我想复制到另一台服务器(其中包含此目录的以前版本)。 rsync是第一个选项,但它会将目标文件夹置于等待状态很长一段时间(超过一分钟)。

我想这样做有点不同:

  1. gzip源文件夹
  2. 将存档scp到目标服务器
  3. gunzip那里的文件
  4. 删除来源和目的地的档案

完成这一切的最好方法是什么?

rsync有 – --delay-updates这似乎是你所需要的:

«…

该选项将每个更新文件的临时文件放入保存目录中,直到传输结束,此时所有文件都被快速连续地重新命名。 这试图使文件的更新更加primefaces化。 默认情况下,文件被放置在每个名为“。〜tmp〜”的目录中

…»

最快的方法,如果你有空间,是rsync两次。 保留目标机器上的两个文件副本。 首先做一个远程rsync来更新不活动的副本。 然后执行本地rsync来从非活动副本更新主动副本。

rsync到冷拷贝,然后只需更改一个符号链接并删除以前的主动副本

停止目标服务器上的Web服务10分钟,以任何您认为合理的方式进行更新(rsync很好),然后再次启动Web服务。

1-2-3: tar -c -O <source folder> | gzip -c | ssh <destination server> "gzip -d | tar -x " tar -c -O <source folder> | gzip -c | ssh <destination server> "gzip -d | tar -x "

4: rm <source folder>