- 24
- 0
- 约1.48万字
- 约 22页
- 2017-08-20 发布于浙江
- 举报
rsync 详解
1、什么是 Rsync
Rsync (remote synchronize)是一个远程数据同步工具,可通过 LAN/WAN 快速
同步多台主机间的文件。Rsync 使用所谓的“Rsync 算法”来使本地和远程两个
主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都
整份传送,因此速度相当快。
Rsync 本来是用于替代 rcp 的一个工具,目前由 维护,所以
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、s sh 等方式来传输文件, 当然也可以通过直接的 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时的消息级别, 常见的消息级别是:ut h, authpriv,
cron, daemon, ftp, kern, lpr, mail, news, security, syslog, user, uucp, local0, local1,
local2, local3,local4, local5, local6和 local7。默认值是 daemon。
二、模块参数
主要是定义服务器哪个目录要被同步。其格式必须为“[module]”形式,这个名
字就是在 rsync 客户端看到的名字,其实有点象
原创力文档

文档评论(0)