我们目前正在将我们的服务器迁移到一个新平台,并且我需要在将服务测试/迁移到我们的新平台时保持 2 个超过 15Gb 的目录同步。
我曾考虑过使用 rsync 来保持它们保持最新状态,但是这会花费很长时间并且只能在运行时保持最新状态,而我需要这是实时的或者尽可能接近的!
如果有人能提供帮助将不胜感激!!
注意:我们当前的系统运行的是 ubuntu,而我们的新系统运行的是 centos 5.5
答案1
您可以使用按一定间隔(例如每小时)运行的 cronjob 来执行此操作rsync -av --delete /directory testing:/directory
。但是,当没有更改时,这会不必要地运行,并且如果在运行后立即发生大量更改,则可能需要近一个小时才能同步它们。更好的解决方案可能是使用同步。
Lsyncd 监视本地目录树事件监视器接口 (inotify)。它会在几秒钟内聚合并组合事件,然后生成一个(或多个)进程来同步更改。默认情况下,这是 rsync。因此,Lsyncd 是一种轻量级实时镜像解决方案,安装起来相对容易,不需要新的文件系统或块设备,也不会影响本地文件系统的性能。
答案2
您可以将生产内容安装到测试系统中,这样您就始终可以掌握当前状态。但请记住,您在测试环境中所做的任何更改也会影响生产系统!
答案3
这取决于您使用的系统类型。
如果您运行的是 Linux,一个简单的 Rsync 就可以使生产和测试保持同步。Windows 也有 Rsync 实用程序,但我不知道它们有多好用。
您是否需要双向复制或仅需要单向复制?