没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
Rsync
一、Rsync 详解
什么是 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
给模块指定一个描述,该描述连同模块名在客户连接得到模块列表时显示给客户。默认没
有描述定义。
path
指定该模块的供备份的目录树路径,该参数是必须指定的。
use chroot
如果"use chroot"指定为 true,那么 rsync 在传输文件以前首先 chroot 到 path 参数所指定的
目录下。这样做的原因是实现额外的安全防护,但是缺点是需要以 roots 权限,并且不能备
份指向外部的符号连接所指向的目录文件。默认情况下 chroot 值为 true。
uid
该选项指定当该模块传输文件时守护进程应该具有的 uid,配合 gid 选项使用可以确定哪
些可以访问怎么样的文件权限,默认值是"nobody"。
gid
该选项指定当该模块传输文件时守护进程应该具有的 gid。默认值为"nobody"。
max connections
指定该模块的最大并发连接数量以保护服务器,超过限制的连接请求将被告知随后再试。
默认值是 0,也就是没有限制。
list
该选项设定当客户请求可以使用的模块列表时,该模块是否应该被列出。如果设置该选项
为 false,可以创建隐藏的模块。默认值是 true。
read only
剩余11页未读,继续阅读
资源评论
fabric区块链
- 粉丝: 200
- 资源: 32
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功