利用Rsync进行文件同步
2014-10-28 00:57 commandow 阅读(867) 评论(0) 编辑 收藏 举报
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配置。
本着知识共享的精神,欢迎大家自由转载此文档,转载时请注明原文出处,如果觉得对你有帮助,请点击“推荐”,谢谢