利用Rsync进行文件同步

1 需求

  先描述下需求,有时候后台经常要同步一些数据,然而又不想每次都全量同步。举个例子,有一个单点物理机,在上面部署了很多脚本和数据的目录,这些脚本又提供给外部来使用,这样的话,如果这台物理机器挂了,部署在上面的脚本都丢失了,这样导致外部调用都失败了,而且你不好恢复这些脚本,这些脚本都可能和目录结构有很强的关联性。

2 原始办法

  每天定时打包脚本和数据目录,通过scp传到备份的机器上,来实现数据同步,这样有个缺点是,每次的数据同步都需要全量同步,如果数据文件目录很大的话,同步时间就会非常长,而且占用不必要的带宽。

3 利用rsync进行数据同步

3.1 增量同步

推荐这种方式:

/usr/bin/rsync -avz --progress 源目录 目的IP:目的目录

在这种方式,文件只会以增量的方式进行同步,而不会删除原有文件。

3.2 增、删方式同步

/usr/bin/rsync -avz --progress –delete 源目录 目的IP:目的目录

  文件以差量的方式进行同步,源目录下新增或删除的文件都会同步到目的目录。但这种方式建议慎用,除非是你想完全保证两个机器的两个目录完全同步,否则,有可能你在目的机器上加了一个脚本,一不小心就被这个同步给删除。

4 定时执行同步(Crontab)

  有时候,你需要定时执行同步功能,Linux下可以配置定时Crontab任务,配置方法可以参见crontab配置

原文地址:https://www.cnblogs.com/derrick/p/4055646.html