比较并复制远程服务器上相同目录中的丢失文件

比较并复制远程服务器上相同目录中的丢失文件

我有一台开发服务器,我想让其上的某些数据目录与实时服务器保持同步。这些目录中的所有文件如果存在于实时服务器上,但不存在于开发服务器上,我都需要复制过去。

因为我不关心从 dev 到 live 的同步,也不担心覆盖 Dev 上的数据,所以我可以只需使用 SCP 复制整个目录即可。问题是,这个文件夹很大(几 GB),我想每晚同步它。它永远无法及时完成。

将丢失的文件从远程目录同步/复制到本地目录的最简单/最佳方法是什么(通过 SSH)?

注意:我会更喜欢如果可以的话,不要安装任何新的/自定义的工具;我也在寻找一些可以快速且轻松地设置/运行的东西,而不需要太多的麻烦或脚本!:)

答案1

把 rsync 放进去,教练。它是为这个游戏而设计的。

它应该完全满足您的需求;大文件只会传输更改的部分,哈希比较是为了完全避免传输未更改的文件。您需要编写一些脚本来通过 ssh 隧道,但这应该很简单。它应该已经安装在大多数正常的 Linux 系统上,因此不需要安装额外的东西。

答案2

我必须同意 Shane 的观点。rsync。根据同步文件夹所需的时间和可用的存储空间量,您可以保留一个 foldername 和 foldername.new,然后每天可以同步 foldername.new 几次。当需要“上线”时,您只需使用 cp 或本地 rsync 将新文件夹中的文件复制到上线文件夹中即可。

查看 rsycn 上的选项,因为它可以调整以更快地处理大文件。此外,如果您要移动许多小文件,您可能需要在移动它们之前创建一个 .tar /.tar.gz。

相关内容