如何以最短的时间间隔将目录从一台 Linux 服务器复制到另一台?

如何以最短的时间间隔将目录从一台 Linux 服务器复制到另一台?

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

我想做点不同的事情:

  1. gzip源文件夹
  2. scp将档案传输至目标服务器
  3. gunzip那里的文件
  4. 删除源和目标处的档案

实现这一切的最佳方法是什么?

答案1

rsync似乎有--delay-updates你需要的东西:

«…

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

…”

答案2

如果您有足够的空间,最快的方法是rsync两次。在目标机器上保留两个文件副本。首先执行远程操作rsync以更新非活动副本。然后执行本地操作rsync以从非活动副本更新活动副本。

答案3

rsync 到冷副本,然后只需更改符号链接并删除以前的活动副本

答案4

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

4:rm <source folder>

相关内容