Rsync是个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文档。Rsync本来是用以取代rcp的一个工具,他当前由 rsync.samba.org维护。Rsync使用所谓的“Rsync演算法”来使本地和远程两个主机之间的文档达到同步,这个算法只传送两个文档的不同部分,而不是每次都整份传送,因此速度相当快。运行Rsync server的机器也叫backup server,一个Rsync server可同时备份多个client的数据;也能够多个Rsync server备份一个client的数据。
Rsync能够搭配rsh或ssh甚至使用daemon模式。Rsync server会打开一个873的服务通道(port),等待对方Rsync连接。连接时,Rsync server会检查口令是否相符,若通过口令查核,则能够开始进行文档传输。第一次连通完成时,会把整份文档传输一次,下一次就只传送二个文档之间不同的部份。
Rsync支持大多数的类Unix系统,无论是Linux、Solaris还是BSD上都经过了良好的测试。此外,他在windows平台下也有相应的版本,比较知名的有cwRsync和Sync2NAS。
Rsync的基本特点如下:
1.能够映像保存整个目录树和文档系统;
2.能够很容易做到保持原来文档的权限、时间、软硬链接等;
3.无须特别权限即可安装;
4.优化的流程,文档传输效率高;
5.能够使用rcp、ssh等方式来传输文档,当然也能够通过直接的socket连接;
6.支持匿名传输。
1.2 核心算法
假定在名为α和β的两台电脑之间同步相似的文档A和B,其中α对文档A拥有访问权,β对文档B拥有访问权。并且假定主机α和β之间的网络带宽很小。那么rsync算法将通过下面的五个步骤来完成:
1.β将文档B分割成一组不重叠的固定大小为S字节的数据块。最后一块可能会比S 小。
2.β对每一个分割好的数据块执行两种校验:一种是32位的滚动弱校验,另一种是128位的MD4强校验。
3.β将这些校验结果发给α。
4.α通过搜索文档A的任何大小为S的数据块(偏移量能够任选,不一定非要是S的倍数),来寻找和文档B的某一块有着相同的弱校验码和强校验码的数据块。这项工作能够借助滚动校验的特性很快完成。
5.α发给β一串指令来生成文档A在β上的备份。这里的每一条指令要么是对文档B经拥有某一个数据块而不须重传的证实,要么是个数据块,这个数据块肯定是没有和文档B的任何一个数据块匹配上的。
1.3 命令语法
rsync的命令格式能够为以下六种:
rsync [OPTION]... SRC DEST
rsync [OPTION]... SRC [USER@]HOST:DEST
rsync [OPTION]... [USER@]HOST:SRC DEST
rsync [OPTION]... [USER@]HOST::SRC DEST
rsync [OPTION]... SRC [USER@]HOST::DEST
rsync [OPTION]... rsync://[USER@]HOST[:PORT]/SRC [DEST]
对应于以上六种命令格式,rsync有六种不同的工作模式:
1)拷贝本地文档。当SRC和DES路径信息都不包含有单个冒号":"分隔符时就启动这种工作模式。
2)使用一个远程shell程式(如rsh、ssh)来实现将本地机器的内容拷贝到远程机器。当DST路径地址包含单个冒号":"分隔符时启动该模式。
3)使用一个远程shell程式(如rsh、ssh)来实现将远程机器的内容拷贝到本地机器。当SRC地址路径包含单个冒号":"分隔符时启动该模式。
4)从远程rsync服务器中拷贝文档到本地机。当SRC路径信息包含"::"分隔符时启动该模式。
5)从本地机器拷贝文档到远程rsync服务器中。当DST路径信息包含"::"分隔符时启动该模式。
6)列远程机的文档列表。这类似于rsync传输,但是只要在命令中省略掉本地机信息即可。
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!




