当前位置: 首页 > 工具软件 > cwRsync > 使用案例 >

windows下使用cwRsync实现远程数据同步

江承嗣
2023-12-01

0x01

下载cwRsync Server服务器端与cwRsync Client客户端,我是从脚本之家下载的

本机作为服务器端(windows 10操作系统),ip为10.14.8.240

虚拟机作为客户端(windows server 2008操作系统),ip为10.14.8.72

0x02

安装cwRsync Server服务端软件到本机,我安装到了E:\Program Files (x86)\ICW目录下,修改rsyncd.conf文件

use chroot = yes
strict modes = false
lock file = rsyncd.lock 
hosts allow = *
max connections = 5
port = 28950
pid = 0
uid = 0

log file = /cygdrive/d/RsyncLog/rsyncd.log
# Module definitions
# Remember cygwin naming conventions : c:\work becomes /cygdrive/c/work
[data_backup]
path = /cygdrive/d/dataBackup
#auth users = admin
#secrets file = /cygdrive/d/rsync_db.ps
read only = no
#list = no
transfer logging = yes

上述配置中

hosts allow = * 代表允许连接的客户端的ip,可以写成具体的ip地址,如果有多个客户端需要从服务端进行同步,为了方便可以写成 *

max connecttions = 5 代表客户端连接到服务端的最大连接数

[data_backup] 代表一个模块,配置客户端同步的时候会用到这个东西

path = /cygdrive/d/dataBackup 代表需要做同步的目录d:/dataBackup,如果不按照这种POISX风格来写,就不会正确识别

0x03

配置完rsyncd.conf文件后,需要按照配置的参数建立对应的文件或者目录,例如

上述配置中我们将需要做数据同步的目录设置为path = /cygdrive/d/dataBackup,所以需要在服务端的d盘符下建立一个名为dataBackup文件夹

并且将该dataBakcup文件夹的的安全性中添加SvcCWRSYNC用户、将其所有者改为该用户并且具有读写权限

做完上述步骤后,win+r运行services.msc打开服务启动RsyncServer服务,打开cmd输入telnet 10.14.8.240 28950看端口是否可用,如果不可用就关闭防火墙或添加防火墙规则

同样在客户端telnet 10.14.8.240 28950查看端口是否可用

以上,配置服务端完毕

0x04

配置客户端,先安装cwRsync Client客户端,我的安装在虚拟机C:\Program Files (x86)\cwRsync目录下

例如我想要将服务端d盘下的dataBackup文件夹下所有文件同步到客户端的d盘下的dataBackup文件夹

打开cmd切换到C:\Program Files (x86)\cwRsync\bin,输入以下命令:

rsync --port=28950 -vzrtopg --progress --delete 10.14.8.240::data_backup /cygdrive/d/dataBackup
上述命令中

-v --verbose //增加冗长,对子目录以递归模式处理

-z --compress //网络带宽不够时会在传输过程中压缩文件数据

-r --recursive //详细模式输出

-t --times //保存修改时间

-o -- woner //保存所有者(仅超级用户)

-p --perms //保存权限

--progress 显示同步备份过程

--delete 删除client客户端有但server服务端没有的文件或文件夹,保证数据一致

data_backup 服务端配置的rsyncd.conf文件中的模块,这个模块可在rsyncd.conf文件中配置多个

/cygdrive/d/dataBackup 要保存到客户端的目录,可以将服务端模块中指定的数据同步到客户端某个目录下(这里配置的就是说在客户端d盘下需要有dataBackup这个文件夹)

运行上述命令后不出意外就会顺利同步到客户端,如果你在这一步出错了,请仔细检查每一个步骤

0x05

既然可以进行数据同步了,那就需要在客户端做一个计划任务,每天定时进行同步,比如说你想要按照15分钟一次的同步频率

先新建一个批处理文件,例如rsync_test.bat,内容为:

@echo off
set RSYNC_HOME=C:\Program Files (x86)\cwRsync\bin
cd %RSYNC_HOME%
C:
rsync --port=28950 -vzrtopg --progress --delete 10.14.8.240::data_backup /cygdrive/d/dataBackup

再新建计划任务,打开控制面板>>系统和安全>>管理工具>>计划任务,执行程序选择上面新建的批处理程序,设置重复时间为15分钟即可

0x06

windows上配置rsync遇到的问题

1.右键属性没有安全选项卡无法设置文件权限,打开我的电脑>>组织>>文件夹和搜索选项>>查看>>去掉使用简单共享的选项

2.rsync_db.ps需要在client端建立一份并设置权限(该问题没有解决,无论我怎么改都提示我@ERROR: auth failed on module data_backup rsync error: error starting client-server protocol (code 5) at main.c(1503) [Receiver=3.0.7] , 最后修改服务端rsyncd.conf文件将auth user = admin和secrets file = /cygdrive/d/rsync_db.ps注释,并修改客户端同步命令,去掉了--password-file=/cygdrive/d/rsync_db.ps)#这一步卡了我。。。算了心塞不说了

3.dos下设置环境变量 set PATH=c:\program files\cwrsync\bin


 类似资料: