rsync远程同步:rsync是以文件名来区分的文件是否已经同步,文件同步之后进程会自动中断

rync的

核心算法介绍:

假定在名为α和β的两台计算机之间同步相似的文件 A 与 B ,其中α对文件 A 拥有访问权,β对文件 B 拥有访问权。并且假定主机α与β之间的网络带宽很小。那么 rsync 算法将通过下面的五个步骤来完成:

1. β将文件 B 分割成一组不重叠的固定大小为 S 字节的数据块。最后一块可能会比 S 小。

2. β对每一个分割好的数据块执行两种校验:一种是 32 位的滚动弱校验,另一种是 128 位的 MD4 强校验。

3. β将这些校验结果发给α。

4. α通过搜索文件 A 的所有大小为 S 的数据块 ( 偏移量可以任选,不一定非要是 S 的倍数 ) ,来寻找与文件 B 的某一块有着相同的弱校验码和强校验码的数据块。

这项工作可以借助滚动校验的特性很快完成。

5. α发给β一串指令来生成文件 A 在β上的备份。这里的每一条指令要么是对文件 B 经拥有某一个数据块而不须重传的证明,要么是一个数据块,这个数据块肯定是没有与文件 B 的任何一个数据块匹配上的。

小结

rsync就是会同步我们指定的两端目录之间的数据,这个数据可以是特殊的数据。同步之前就先进行两端的数据的比对,只会同步两者之间不同的部分,并保留文件原本的属性。

并且支持匿名的方式进行同步传输。所以rsync在备份,同步上就会较为快速

1.需要两台主机实现免密登录

2.rsync的同步参数

a 归档传输。保留文件的原始属性

z 传输时压缩文件,可能会占用更多的资源

--delete   需要指定同步目录时,才有用   /目录    --delete参数要放在源目录和目标目录前,并且两个目录结构一定要一致!不能使用./*

--exclude  过滤单个文件不同步

--exclude-from=文件     过滤该文件内容中指定的的路径

--bwlimit=1000 K Bytes/s 

-e "ssh -p30000"   指定端口

--append 追加文件内容发,可确保文件的inode信息不会更变  


只同步/rsync目录下的 ".sh"文件   --exclude 后面加过滤的条件

rsync -av  --exclude "*.sh"   /rsync/    192.168.191.121:/rsync  

rsync的使用总结_使用

同步时删除目的服务器中源服务器上不存在的文件

rsync -av --delete  /rysnc/或者/rsync    192.168.191.121:/rsync

rsync的使用总结_使用_02

在同步源文件是通过匹配确认的情况下/rsync/*.sh ,目前删除功能还没有实现