我有一个任务是在位于两个不同地理位置的生产服务器和登台服务器之间创建被动同步。
该环境完全基于Linux(CentOS / RHEL),需要同步的数据大小约为每天1.5GB,并且每天仅同步一次。
我选择的方法是rsync
。
要同步的源目录位于名为“pg4”的 CentOS 数据库服务器上,该服务器具有到同一 LAN 中另一台服务器的 NFS 挂载共享,我们将该另一台服务器称为“mass1”。
我的想法是在“mass1”上创建一个cron
作业rsync
,然后通过一条能够完成该任务的线路将文件从那里推送到全球各地的目标服务器。
给我这个任务的 DBA 坚持认为rsync
cron
应该直接在数据库服务器“pg4”上配置该作业,而不是在数据所在的服务器上,而是在保存要同步的文件夹的挂载的服务器上配置。
我的问题是:
如果我在那里配置作业,是否会rsync
先将数据复制到“pg4”服务器,然后再复制到目标服务器cron
?还是rsync
直接从“mass1”服务器执行?
我认为从逻辑上讲,cron
在“mass1”服务器上配置作业是正确的方法,您认为呢?
提前致谢
答案1
我了解你的情况是:
数据已打开pg4
,应传输至服务器remote
。您已通过 NFS 在 上挂载了包含数据的目录mass1
。
接下来会发生以下情况:
- 如果 你 运行
rsync
,mass1
例如rsync -av /mnt/pg4/data user@remote:/data
, 数据 将 通过 NFS 复制到mass1
, 然后remote
通过复制到rsync
。 - 如果您直接在
rsync
上运行,例如使用,它将不会被复制到另一台服务器,而是直接复制到。pg4
remote
rsync -av /data user@remote:/data
remote
rsync
无法在两端都是远程的情况下进行复制,因此rsync -av user@pg4:/data user@remote:/data
无法mass1
工作。