windows下rsync数据同步部署文档
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Rsync 文件数据同步
/
目 录
一、什么是 rsync?..................................................................................................... 2 二、Rsync 同步算法..................................................................................................... 3 三、windows 下 swRsync 使用实例............................................................................. 3 3.1、服务端安装方法........................................................................................... 3 3.2、客户端的安装方法..................................................................................... 11 3.3、文件同步详细方法说明............................................................................. 13 3.4 Rsync 详细参数说明.................................................................................... 16
1
Rsync 文件数据同步
/
rsync? 一、什么是 rsync?
丢失数据是大家都不想看到的,为了数据安全,一个好的智能的备份软件是 必不可少的。
Rsync (remote synchronize) 是一个远程数据同步工具, 是类 unix 系统下的数据镜像备份工具, 可通过 LAN/WAN 快速同步多台主机间的文件。
Rsync 使用“Rsync 算法”来使本地和远程两个主机之间的文件达到同步,这个算法只 传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快。
Rsync 本来是用于替代 rcp 的一个工具,目前由 维护,所 以 rsync.conf 文件的格式类似于 samba 的主配置文件。
Rsync 可以通过 rsh 或 ssh 使用,也能以 daemon 模式去运行,在以 daemon 方式运行时 Rsync server 会打开一个 873 端口,等待客户端去连接。
连接时,Rsync server 会检查口令 是否相符,若通过口令查核,则可以开始进行文件传输。
第一次连通完成时,会 把整份文件传输一次, 以后则就只需进行增量备份。
windows 下也有类似的软件, 就是 cwRsync 定期备份软件,此软件分为服务器端/客户端。
rsync 有很多不同 的用法,我们在此文档中只介绍 rsync 的 deamon 模式 软件下载 /projects/sereds/files/cwRsync/ 目前最新版本为 4.2.0,我用的是比较老一点的 cwRsync_2.1.5 版本
的基本特点如下 如下: Rsync 的基本特点如下: 可以镜像保存整个目录树和文件系统。
可以很容易做到保持原来文件的权限、时间、软硬链接等等。
无须特殊权限即可安装。
优化的流程,文件传输效率高。
可以使用 rcp、ssh 等方式来传输文件,当然也可以通过直接的 socket 连接。
支持匿名传输,以方便进行网站镜象。
2
Rsync 文件数据同步
/
二、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 的任何一个数据块匹配上的。
三、windows 下 swRsync 使用实例 swRsync
3.1、 3.1、服务端安装方法 >>>点击安装服务器版本文件 >>>点击安装服务器版本文件
>>>下一步 >>>下一步
3
Rsync 文件数据同步
/
>>>同意 >>>同意
>>>下一步 >>>下一步
>>>下一步 >>>下一步
4
Rsync 文件数据同步
/
>>>选择安装目录默认为 ----开始安装 >>>选择安装目录默认为 C 盘----开始安装 选择安装目录
5
Rsync 文件数据同步
/
>>>安装过程中会默认分配一个 用户和密码, >>>安装过程中会默认分配一个 SvcwRsync 用户和密码, 安装完成后系统会默认用这个用户来 安装完成后系统会默认用这个用户来启动 RsyncServer 服务 系统会默认用这个用户
>>>安装完成 >>>安装完成
6
Rsync 文件数据同步
/
>>>系统默认添加 用户和密码, >>>系统默认添加 SvcwRsync 用户和密码,隶属于 Administrator 组和 user 组
>>>我的电脑>>>管理>>>服务和应用程序>>>服务>>>找到 >>>我的电脑>>>管理>>>服务和应用程序>>>服务>>>找到 RsyncServer 服务 我的电脑>>>管理>>>服务和应用程序>>>服务>>>
7
Rsync 文件数据同步
/
>>>把 服务的启动类型设置为自动启动,并启动服务。
>>>把 RsyncServer 服务的启动类型设置为自动启动,并启动服务。
>>>RsyncServer 用户启动服务,不用管它。
>>>RsyncServer 服务默认会以 SvcwRsync 用户启动服务,不用管它。
8
Rsync 文件数据同步
/
>>>C 我们需要对此文件进行配置。
>>>CwRsync Server 的配置文件为 rsyncd.conf 我们需要对此文件进行配置。
开始>>>程序>>>cwRsync 开始>>>程序>>>cwRsync Server>>>rsyncd.conf >>>程序
>>>R 的模块, >>>Rsyncd.conf 默认配置会建一个 test 的模块, 我们只需要对此模块进行 修改就可以了,我们也可以把 删掉自己建立一个模块 自己建立一个模块。
修改就可以了,我们也可以把 test 删掉自己建立一个模块。
当客户端向服务器 请求同步文件时,将会调用咱们设置的模块里边的信息。
请求同步文件时,将会调用咱们设置的模块里边的信息。
9
Rsync 文件数据同步
/
>>>编辑 >>>编辑 rsyncd.conf 文件
同步 C 盘目录下的 work 目录下的所有文件 关闭只读功能,允许客户端上传和下载文件 只允许 192.168.1.0 网段下的客户端同步文件 打开记录日志功能 验证用户为:Administrator 在 C 盘的根目录下用记事本建立一个 rsyncd.secrets 文 件 , 输 入 内 容 为 Administrator:123,服务器的用户名和密码 该文件用来验证客户端同步文件的真实性。
在 C 盘的根目录下用记事本 写入系统的用户名和密码, 保存为 rsyncd.secrets 文件, 该文件是用来验证客户端同 步文件的。
提高了同步文件 的安全性。
设置服务器端需要同步的 文件为 C 盘根目录下的 work 文件夹下的所有文件
只需要输入 用户名和 密码就可以了
10
至此服务器端就设置好了, 接下来我们看一下客户端 的安装。
Rsync 文件数据同步
/
3.2、 3.2、客户端的安装方法
>>>下一步 >>>下一步
>>>我同意 >>>我同意
11
Rsync 文件数据同步
/
>>>下一步 >>>下一步
>>>选择安装的目录 >>>选择安装的目录
>>>安装成功 >>>安装成功
12
Rsync 文件数据同步
/
3.3、 3.3、文件同步详细方法说明 服务器端设置: 服务器端设置: 1、 、 安装的过程很简单直接下一步就可以, 其实 server 包括了 client 的功能。
的功能。
安装的过程很简单直接下一步就可以, 安装完 server 后,会在 service 中增加 RsyncServer 服务,进入服务管理, 设置为自动启动。
安装成功后,要同步的文件目录必须加上 SvcwRsync 这个用 户可读权限或者把 SvcwRsync 用户加入 Administrator 组就可以了。
2、cwRsync 服务器配置 服务器配置 、 进入 cwRsync 安装目录,配置 rsyncd.conf 如下。
程序代码: port = 873 #默认端口是 873, 做了端口限制的要开启 cwRsync 所使用的端口。
use chroot = false strict modes = false hosts allow = * log file = rsyncd.log pid file = rsyncd.pid # Module definitions # Remember cygwin naming conventions : c:\work becomes /cygwin/c/work # [test] path = /cygdrive/c/work #服务器端需要共享的目录 read only = false #只读关闭,允许上传和下载 hosts allow = 192.168.1.0/255.255.255.0 #允许192.168.1.0网段的用户共享 transfer logging = yes #记录共享日志 auth users = Administrator #用Administrator验证用户 secrets file = /cygdrive/c/rsyncd.secrets #这里指定了验证用户名密码是在C盘的目录下的rsyncd.secrets文件,其内容 是文本编辑为Administrator:123 前面是用户名,后面是密码。
13
Rsync 文件数据同步
/
客户端设置: 客户端设置: 端设置 1、cwRsync 自动数据同步 、 因为只是最简单的数据同步,所以就不使用 ssh 了,直接启动 rsync 服务 就可以了。
在客户机上安装 cwRsync_Server_2.1.5_Installe 安装成功后需要建立两个文件 用文本新建一个 BAT 文件,data.bat,内容如下: 程序代码:
这个文件的意思为: "C:\Program Files\cwRsync\bin\rsync.exe" 运行 rsync.exe 文件启用 rsync 服务 -vrtopg 这个是运行参数, 可以查看下边的参数列表。
--progress 在程序执行的时候屏幕窗口上显示详细的运作信息,例如正在同步哪个文件, 速度多少。
--delete 客户端与服务器端同步文件将完全相一致,不一致的文件将会被删除。
请谨慎使用这条命令!! ! --password-file=/cygdrive/c/pwd.conf 用文本新建一个密码验证文件,pwd.conf,内容为验证用户的密码 跟服务器端一样,指定密码文件的路径,以便在自动运行的时候不用手动来输 入. 在 C 盘根目录下新建一个 pwd.txt 重命名成 pwd.conf 文件,只需要输入 Administrator 的用户名对应的密码就可以了, 我这里是 C 盘根目录下的 pwd.conf 文件。
(pwd.conf 是自己起的,可以自己设置,这个文件是用来验证密码的,只 要有验证用户的密码就可以了) Administrator@192.168.1.31::test /cygdrive/c/work 用 Administrator 用户访问 192.168.1.31 主机的 Rsync 服务器下的 test 模块 把所调用 rest 模块下需要同步的文件复制到客户端 C 盘的 work 目录下。
实 现客户端和服务端的文件同步, 该设置是用来设置客户端从服务器下载文件来实 现文件同步的。
设置好了以后,双击该 daba.bat 文件看能不能进行文件同步。
14
Rsync 文件数据同步
/
如果想从客户端上传文件到服务器,实现文件同步可以这样设置 如果想从客户端上传文件到服务器,实现文件同步可以这样设置 data.bat 想从客户端上传文件到服务器
2、cwRsync 定期同步数据 、 在 windows 控制面板里,点计划任务,选中我们新建的 data.bat,按需要设 置自动运行。
后记: 这里配置的 cwRsync 是完全同步的, 服务器内容增加或删减, cwRsync 在 同步时,客户端同样增加或删减,所以每次同步时搜索文件时间会比较长。
我还得唠叨唠叨: 我还得唠叨唠叨: 服务端跟客户端的配置都完成了,可以试试执行。
如果出现任何什么错误最大一个可能第一是权限没弄好目录的,密码文件的。
第二就是配置有误,客户端的没跟服务器的对应好,账号或者存储目录名。
现在客户端所配置的选项是单向的数据上传同步。
意思是检测服务端跟客户 端文件的差异,再决定要上传,更新服务器的哪些文件。
如果客户端存在比服务 器多的文件,即上传。
如果客户端存在比服务器要新的文件,即覆盖。
如果客 户端的文件相比服务器的要缺少,即跳过。
(不跳过也行!你可以在客户端参数中-vrtopg 的后边加入--delete 来实现同步 删除.慎用!!) 对了!还要说一说!.要注意路径的斜杠。
很重要!!! /cygdrive/c/work/ 当前目录下边 /cygdrive/c/work Administrator@192.168.1.31::test 这个 work 后少了个斜杠!, 就会把 c:/ 盘下 work 文件同步到服务器当前目录 下边 c:/work 的文件内就是说他会再建一个文件夹。
常出现的错误: 错误 1: rsync: read error: Connection reset by peer (104) rsync error: error in rsync protocol data stream (code 12) at io.c(794) [receive r=3.0.2] 解决:很大可能是服务器端没有开启 rsync 服务。
开启服务。
错误 2:@ERROR: chdir failed rsync error: error starting client-server protocol (code 5) at main.c(1495) [rec
15
Administrator@192.168.1.31::test
这个写法, 会吧 c:/ 盘下 work 文件夹下的所有文件都同步到服务器 c: /work
Rsync 文件数据同步
/
eiver=3.0.2] 解决:服务器端同步目录没有权限,cwrsync 默认用户是 Svcwrsync。
为同步 目录添加用户 Svcwrsync 权限。
错误 3:@ERROR: failed to open lock file rsync error: error starting client-server protocol (code 5) at main.c(1495) [rec eiver=3.0.2] 解决:配置文件 rsync.conf 中添加 lock file = rsyncd.lock 即可解决。
3.4、 命令详细 详细参数说明 3.4、 Rsync 命令详细参数说明 -v, --verbose 详细模式输出 -q, --quiet 精简输出模式 -c, --checksum 打开校验开关,强制对文件传输进行校验 -a, --archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等 于-rlptgoD -r, --recursive 对子目录以递归模式处理 -R, --relative 使用相对路径信息 -b, --backup 创建备份, 也就是对于目的已经存在有同样的文件名时, 将老的 文件重新命名为~filename。
可以使用--suffix 选项来指定不同的备份文件前缀。
--backup-dir 将备份文件(如~filename)存放在在目录下。
-suffix=SUFFIX 定义备份文件前缀 -u, --update 仅仅进行更新,也就是跳过所有已经存在于 DST,并且文件时间 晚于要备份的文件。
(不覆盖更新的文件) -l, --links 保留软链结 -L, --copy-links 想对待常规文件一样处理软链结 --copy-unsafe-links 仅仅拷贝指向 SRC 路径目录树以外的链结 --safe-links 忽略指向 SRC 路径目录树以外的链结 -H, --hard-links 保留硬链结 -p, --perms 保持文件权限 -o, --owner 保持文件属主信息 -g, --group 保持文件属组信息 -D, --devices 保持设备文件信息 -t, --times 保持文件时间信息 -S, --sparse 对稀疏文件进行特殊处理以节省 DST 的空间 -n, --dry-run 现实哪些文件将被传输 -W, --whole-file 拷贝文件,不进行增量检测 -x, --one-file-system 不要跨越文件系统边界 -B, --block-size=SIZE 检验算法使用的块尺寸,默认是 700 字节
16
Rsync 文件数据同步
/
-e, --rsh=COMMAND 指定使用 rsh、ssh 方式进行数据同步 --rsync-path=PATH 指定远程服务器上的 rsync 命令所在路径信息 -C, --cvs-exclude 使用和 CVS 一样的方法自动忽略文件, 用来排除那些不希望 传输的文件 --existing 仅仅更新那些已经存在于 DST 的文件, 而不备份那些新创建的文件 --delete 删除那些 DST 中 SRC 没有的文件 --delete-excluded 同样删除接收端那些被该选项指定排除的文件 --delete-after 传输结束以后再删除 --ignore-errors 及时出现 IO 错误也进行删除 --max-delete=NUM 最多删除 NUM 个文件 --partial 保留那些因故没有完全传输的文件,以是加快随后的再次传输 --force 强制删除目录,即使不为空 --numeric-ids 不将数字的用户和组 ID 匹配为用户名和组名 --timeout=TIME IP 超时时间,单位为秒 -I, --ignore-times 不跳过那些有同样的时间和长度的文件 --size-only 当决定是否要备份文件时,仅仅察看文件大小而不考虑文件时间 --modify-window=NUM 决定文件是否时间相同时使用的时间戳窗口, 默认为 0 -T --temp-dir=DIR 在 DIR 中创建临时文件 --compare-dest=DIR 同样比较 DIR 中的文件来决定是否需要备份 -P 等同于 --partial --progress 显示备份过程 -z, --compress 对备份的文件在传输时进行压缩处理 --exclude=PATTERN 指定排除不需要传输的文件模式 --include=PATTERN 指定不排除而需要传输的文件模式 --exclude-from=FILE 排除 FILE 中指定模式的文件 --include-from=FILE 不排除 FILE 指定模式匹配的文件 --version 打印版本信息 --address 绑定到特定的地址 --config=FILE 指定其他的配置文件,不使用默认的 rsyncd.conf 文件 --port=PORT 指定其他的 rsync 服务端口 --blocking-io 对远程 shell 使用阻塞 IO -stats 给出某些文件的传输状态 --progress 在传输时现实传输过程 --log-format=formAT 指定日志文件格式
17
Rsync 文件数据同步
/
--password-file=FILE 从 FILE 中得到密码 --bwlimit=KBPS 限制 I/O 带宽,KBytes per second -h, --help 显示帮助信息
18
。