1. cwRsync简介
cwRsync是Rsync在Windows上的实现版本,Rsync通过使用特定算法的文件传输技术,可以在网络上传输只修改了的文件。cwRsync主要用于Windows上的远程文件同步备份和同步,它包含Cygwin DLL和适用Cygwin版本的Rsync两部分。cwRsync分为Server和Client,本文使用的版本为4.1.0,下载地址如下:cwRsyncServer v4.1.0:http://pan.baidu.com/s/1eQpaIVwcwRsync v4.1.0:http://pan.baidu.com/s/1pJ3B1FX或者到s.jb51.net下载下面举例介绍Server及Client端的配置使用,本文使用环境如下:Server: 192.168.85.236Client: 192.168.85.249
序列号 | CPU | RAM | HDD | 带宽 | 售价(美元) | 免费试用 |
---|---|---|---|---|---|---|
香港服务器1 | E5-2620 | 32G | 1T HDD | 50M/无限流量 | $196.00 | 立即申请 |
香港服务器2 | E5-2650 | 32G | 1T HDD | 50M/无限流量 | $256.00 | 立即申请 |
香港服务器3 | E5-2680 | 32G | 1T HDD | 50M/无限流量 | $316.00 | 立即申请 |
香港服务器4 | E5-2690 | 32G | 1T HDD | 50M/无限流量 | $336.00 | 立即申请 |
香港服务器5 | E5-2697 | 32G | 1T HDD | 50M/无限流量 | $376.00 | 立即申请 |
香港服务器6 | E5-2620*2 | 32G | 1T HDD | 50M/无限流量 | $376.00 | 立即申请 |
香港服务器7 | E5-2650*2 | 32G | 1T HDD | 50M/无限流量 | $436.00 | 立即申请 |
香港服务器8 | E5-2680*2 | 32G | 1T HDD | 50M/无限流量 | $476.00 | 立即申请 |
香港服务器9 | E5-2690*2 | 32G | 1T HDD | 50M/无限流量 | $556.00 | 立即申请 |
香港服务器10 | E5-2697*2 | 32G | 1T HDD | 50M/无限流量 | $596.00 | 立即申请 |
香港服务器11 | E5-2680v4*2 | 32G | 1T HDD | 50M/无限流量 | $696.00 | 立即申请 |
香港服务器12 | E5-2698v4*2 | 32G | 1T HDD | 50M/无限流量 | $796.00 | 立即申请 |
2. Server安装使用
2.1 安装一路点击Next,使用默认配置安装即可。2.2 配置修改配置文件rsyncd.conf如下(默认位置:C:Program FilesICW):
use chroot = falsestrict modes = falsehosts allow = *log file = rsyncd.logpid file = rsyncd.pidport = 873uid = 0gid = 0# Module definitions# Remember cygwin naming conventions : c:work becomes /cygwin/c/work#[test]path = /cygdrive/d/testread only = falsetransfer logging = yes
部分重要参数解释如下:
use chroot = falsestrict modes = falsehosts allow = * #允许所有IP访问log file = rsyncd.log #日志文件pid file = rsyncd.pid #进程文件port = 873 #服务端口号uid = 0 #不限定用户gid = 0 #不限定组
# Module definitions# Remember cygwin naming conventions : c:work becomes /cygwin/c/work#[test] #认证的模块名,在client端需要指定使用path = /cygdrive/d/test #需要做镜像同步的目录,如d:/testread only = falsetransfer logging = yes
注:1. uid=0和gid=0需要指定,否则后面client进行同步时会报错:@ERROR: invalid uid nobodyrsync error: error starting client-server protocol (code 5) at main.c(1516) [Receiver=3.0.8]2. 上述只是简单的配置示例,还有很多其他的选项,可以参考帮助文件:C:Program FilesICWdocsyncd.conf.html2.3 启动服务在Server机器上运行services.msc,选择服务"RsyncServer"配置启动类型为"自动",后启动该服务。
3. Client安装使用3.1 安装与Server相同,一路点击Next,使用默认配置安装即可。3.2 使用新建一个test.bat文件,内容如下:
@echo offset RSYNC_HOME=C:Program FilescwRsyncincd %RSYNC_HOME%C:rsync -avzP --progress --delete rsync://192.168.85.236:873/test /cygdrive/d/test
命令参数详解:
-avzP -a 参数,相当于-rlptgoD:-r 是递归-l 是链接文件,意思是拷贝链接文件-p 表示保持文件原有权限-t 保持文件原有时间-g 保持文件原有用户组-o 保持文件原有属主-D 相当于块设备文件-v 详细模式输出-z 传输时压缩-P 显示传输进度--progress 显示备份同步过程--delete 删除Client中有Server没有的文件,即如果Server删除了这一文件,那么client也相应把文件删除,保持真正的一致rsync://192.168.85.236:873/test 配置Sever的IP地址及需要同步的模块名(Server rsyncd.conf中配置)/cygdrive/d/test 存放同步文件的Client本地目录D:est
运行bat,Client会进行文件远程同步,截图如下:
3.3 测试在上述环境上,进行了大批量文件的同步测试,结果如下:
1.每次进行同步时,client均会获取更新文件列表,文件数目比较大时(2.7w 27.5G)耗时较长(5min47s)2.在此基础上进行增量更新耗时较短,更新100个文件(减去获取列表时间)只需耗时16s4.计划任务配置1. 在client机器上选择:控制面板->任务计划->添加任务计划2. 点击下一步->浏览,打开上述的test.bat文件3. 选择每天执行一次4. 配置起始时间5. 点击下一步,输入服务器用户名及密码,完成任务添加6. 选择刚才添加的任务,配置属性:日常安排->高级,选择重复任务,配置每20分钟执行一次,持续24小时这时,计划任务就会每天24小时,每20分钟运行一次的方式来自动进行client与Server间的数据同步了。