Rsync无差异同步原理和实现

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Rsync无差异同步原理和实现相关的知识,希望对你有一定的参考价值。

4、Rsync无差异同步原理和实现.md

无差异同步

  在生产环境中我们可能会遇到这样的状况,我们的客户端在服务端去拉取数据的时候,首先一点,对于拉取我们的服务端有的那么我们客户端肯定有。但是我们的客户端有的服务端就不一定是有的了。反之如果是推送的话,那么我们客户端有的我们的服务端那肯定是有的,但是我们的服务端有的我们的客户端不一定有。所以对于这种当服务端删除一条数据之后为了保障我们的客户端也能在下一次同步的时候进行删除的这种情况我们就需要采取无差异同步,保障数据的一致性。

实现方法

--delete    #实现无差异同步的方法,本地有远端就有,本地没有远端有也将删除。

    无差异同步,说起来很简单,但是真正操作起来,如果是误操作那么影响是特别大的,比如我们的服务端不小心删除了一个数据,而此时我们又进行了一次无差异同步,那么所有客户机上的数据也将逐渐被删除。所以我们一定需要理解无差异同步的真正原理

演示

示例:
1、先查看服务端的所有数据
[[email protected] data]# ls /data/
a  b  c  d  issue
2、先在客户端做一次全量数据同步
[[email protected] ~]# rsync -avz --password-file=/etc/rsync.passwd [email protected]::cce /tmp/
receiving incremental file list
./
a
b
c
d
issue
sent 157 bytes  received 367 bytes  1048.00 bytes/sec
total size is 23  speedup is 0.04    
[[email protected] ~]# ls /tmp/
a  b  c  d  issue
3、模拟误操作,在我们的服务端删除一条数据。例如文件issue
[[email protected] data]# rm -f /data/issue 
4、进行一次无差异拉取同步
[[email protected] ~]# rsync -avz --delete --password-file=/etc/rsync.passwd [email protected]::cce /tmp/
receiving incremental file list
deleting issue
./
sent 62 bytes  received 146 bytes  416.00 bytes/sec
total size is 0  speedup is 0.00
[[email protected] ~]# ls /tmp/ 
a  b  c  d
可以看到我们进行一次同步之后我们的客户端也将issue文件同时删除掉了

一种可能出现的更严重的情况,如果我们的客户端服务器将数据全部删除了,而在此时我们又做了一次推送,那么我们的服务端数据将全部删除。
示例:
1、先查看服务端的所有数据
[[email protected] data]# ls /data/
a  b  c  d  
2、先做一次全量同步,而后将我们客户端的数据全部删除
[[email protected] ~]# rsync -avz --password-file=/etc/rsync.passwd [email protected]::cce /tmp/
receiving incremental file list
./
a
b
c
d
sent 138 bytes  received 290 bytes  285.33 bytes/sec
total size is 0  speedup is 0.00
[[email protected] ~]# rm -rf /tmp/*
3、然后做一次无差异推送
[[email protected] ~]# rsync -avz --delete --password-file=/etc/rsync.passwd /tmp/ [email protected]::cce
sending incremental file list
./
deleting d
deleting c
deleting b
deleting a
sent 31 bytes  received 11 bytes  84.00 bytes/sec
total size is 0  speedup is 0.00
此时我们可以看到我们服务端的数据已经全部被干掉了

rsync的参考资料

http://rsync.samba.org
man rsync
man rsyncd.conf
http://www.samba.org/ftp/rsync/rsync.html
http://www.samba.org/ftp/rsync/rsync.conf.html

本文出自 “Char” 博客,请务必保留此出处http://charcce.blog.51cto.com/4255555/1930374

以上是关于Rsync无差异同步原理和实现的主要内容,如果未能解决你的问题,请参考以下文章

rsync --delete无差异同步

rsync+inotify实现数据同步

Rsync+Sersync实时同步数据目录

一rsync基础原理

rsync的常用命令,及实现远程备份

rsync服务