Rsync详解
Rsync详解 1、什么是Rsync Rsync(remote synchronize)是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件.Rsync使用所谓的“Rsync算法”来使本地和远 程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快. Rsync本来是用于替代rcp的一个工具,目前由rsync.samba.org维护,rsync.conf文件的格式类似于samba的主配 置文件.Rsync可以通过rsh或ssh使用,也能以daemon模式去运行,在以daemon方式运行时Rsync server会打开一个873端口,等待客户端去连接.连接时,Rsync server会检查口令是否相符,若通过口令查核,则可以开始进行文件传输.第一次连通完成时,会把整份文件传输一次,以后则就只需进行增量备份. Rsync支持大多数的类Unix系统,无论是Linux、Solaris还是BSD上都经过了良好的测试.此外,它在windows平台下也有相应的版本,如cwRsync和Sync2NAS等工具. Rsync的基本特点如下: 1.可以镜像保存整个目录树和文件系统; 2.可以很容易做到保持原来文件的权限、时间、软硬链接等; 3.无须特殊权限即可安装; 4.优化的流程,文件传输效率高; 5.可以使用rsh、ssh等方式来传输文件,当然也可以通过直接的socket连接; 6.支持匿名传输. 2、Rsync同步算法 Rsync只同步文件的速度相当快,是“Rsync同步算法”能在很短的时间内计算出需要备份的数据,关于Rsync的同步算法描述如下: 假定在1号和2号两台计算机之间同步相似的文件A与B,其中1号对文件A拥有访问权,2号对文件B拥有访问权.并且假定主机1号与2号之间的网络带宽很小.那么rsync算法将通过下面的五个步骤来完成: 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经拥有某一个数据块而不须重传的证明,要么是一个数据块,这个数据块肯定是没有与文件B的任何一个数据块匹配上的. 3、Rsync参数说明 3.1 rsyncd.conf配置文件 -、全局参数 在文件中[module]之前的所有参数都是全局参数,当然也可以在全局参数部分定义模块参数,这时候该参数的值就是所有模块的默认值. port 指定后台程序使用的端口号,默认为873. motd file “motd file”参数用来指定一个消息文件,当客户连接服务器时该文件的内容显示给客户,默认是没有motd文件的. log file “log file”指定rsync的日志文件,而不将日志发送给syslog.比如可指定为“/var/log/rsyncd.log”. pid file 指定rsync的pid文件,通常指定为“/var/run/rsyncd.pid”. syslog facility 指 定rsync发送日志消息给syslog时的消息级别,常见的消息级别是:uth, authpriv, cron, daemon, ftp, kern, lpr, mail, news, security, sys-log, user, uucp, local0, local1, local2, local3,local4, local5, local6和local7.默认值是daemon. 二、模块参数 主要是定义服务器哪个目录要被同步.其格式为“[module]”形式,这个名字就是在rsync 客户端看到的名字,其实有点象Samba服务器提供的共享名.而服务器真正同步的数据是通过 path 来指定的.我们可以根据自己的需要,来指定多个模块,模块中可以定义以下参数: comment 给模块指定一个描述,该描述连同模块名在客户连接得到 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |