我已经设置了两台服务器,每 5 分钟使用rsync
守护进程和作业进行同步。cron
- 服务器 A 有一个守护程序,可通过别名提供文件夹。
- 服务器 B 有一个守护程序,可以通过别名提供文件夹(相同路径)。
- 服务器 A 有一项
cron
作业将文件夹(相同路径)同步到服务器 A 的守护程序别名。 - 服务器 B 有一项
cron
作业将文件夹(相同路径)同步到服务器 A 的守护程序别名。 - 该
rsync
命令给出了参数-urtzv
。 - 服务器时钟已同步。
- 该
cron
作业每 5 分钟运行一次(在钟面上的 5 分钟刻度处),因此两台服务器将同时(大约)执行。
这样做有什么潜在的问题吗?具体来说:
rsync
由于两台服务器同时执行,是否会出现数据损坏?或者守护进程是否智能地处理冲突?- 如果(例如)服务器 A 向服务器 B 传输超过 5 分钟(在单次
rsync
运行中),但服务器 B在服务器 A 上的rsync
长时间运行rsync
开始后约 5 分钟以另一种方式执行,是否会出现数据损坏? - 在最后一种情况下,如果除此之外,服务器 A 上的另一个进程也写入文件超过 5 分钟,是否会出现数据损坏?
我读到并行运行rsync
两次(在同一服务器和源/目标上)在数据完整性方面应该是安全的,尽管它可能会降低性能。我还了解到,rsync
将传入的数据存储在临时文件中,只有在传输完成后才将它们移动到永久文件中。但我不确定rsync
在两台服务器上设置同时同步双向时的行为。
如果在服务器故障中更好地询问这个问题,请告诉我。