rsync详解
1 rsync简介
rsync(remote synchronize)是远程同步工具,通过LAN/WLAN,使用rsync算法(只传送两台主机间的文件的不同部分)快速同步多台主机间的文件。
rsync可以通过rsh/ssh使用,也可以通过daemone模式去运行,以daemone模式运行时Rsync Server会打开873端口等待客户端连接。
第一次连通时,会把整份文件传输一次,以后只要进行增量备份
rsync基本特点:
1)可以镜像保存整个目录树和文件系统
2)保存原来文件权限、时间、软硬链接
3)无须特殊权限安装
4)优化流程,传输效率高
5)可使用rsh、ssh等方式来传输,也可以通过socket连接
6)支持匿名传输
2 rsync算法
1、2号两台计算机之间同步相似文件A、B
1)2号将文件B分割成固定大小为S字节的数据块(最后一个数据块可能小于S)
2)2号对每一个数据块进行32位滚动弱校验和128位MD4强校验
3)2号将校验结果发给1号
4)1号通过搜索文件A所有大小为S的数据块(偏移量任选,未必是S的整数倍),寻找到与B的某一块具有相同若校验码和强校验码的数据块(借助滚动校验特性快速完成)
5)1号发送给2号一串指令生成A在2号上的备份。每一条指令要么是对文件B已经拥有某个文件块而不需重传的证明,要么是一个没有匹配上的数据块