windows服务器使用cwRsync实时同步

Rsync是一个有名的Linux端同步工具,最大的特点是参数非常详细,可以实现多种多样的传输要求,该工具本身是一个Linux平台软件,在Windows端对应的是cwRsync,使用方法和原来的Rsync类似。由于cwRsync只是用Cygwin将rsync移植到Windows平台的,所以可以用于linux到Windows、Windows到Linux、Windows到Windows等等。

rsync同步
环境准备

软件包下载:
链接:https://pan.baidu.com/s/1lCqCtOkloShA2GB6cSDK1w
提取码:6GJd

两台电脑,我这里用虚拟机WIN10模拟服务端,用虚拟机windows7模拟客户端。
服务端IP:192.168.31.171
客户端IP:192.168.31.254

实现目的:将服务端C:\tongbu目录中的文件定时同步到客户端C:\target目录中去。

cwRsyncServer(服务端)配置步骤

1.双击运行wRsyncServer_4.1.0_Installer.exe。


默认路径安装

2.这里创建的账户是操作系统的,创建的这个账户是专门用来运行cwRsyncServer服务端程序的。建议这里不要使用安装程序默认提供的账户名和密码,不易记忆,应该创建一个自己常用的、容易记住的账户。
用户:erlangwu
密码:123.com


创建启动cwrsync的用户

安装完成后,打开用户管理,可以发现自动创建了安装时指定的erlangwu用户。


自动创建rsync用户

3.cwRsyncServer服务程序安装成功后,关闭窗口。然后在系统服务管理界面中找到RsyncServer项,将其启动类型改为“自动”,接着启动服务。


启动RsyncServer服务
  1. 这一步的操作很重要,需要强调。服务端C:\tongbu目录中的文件需要cwRsyncServer服务程序来维持同步,而上面系统创建的“erlangwu”账户是来运行cwRsyncServer服务程序的,所以“erlangwu”账户需要对C:\tongbu这个目录有足够的操作权限。下面我们来设置一下。

首先


设置要同步的目录的权限
点击添加
image.png
勾选所有权限
  1. 权限设置完后,修改cwRsyncServer的配置文件rsyncd.conf(安装目录C:\Program Files (x86)\ICW)。下图是我应用的配置项,未用到配置项的说明可以到官网查询。
  use chroot = false  #不适用chroot
  strict modes = false #静态模式
  hosts allow = *  #对所有IP开放访问
  log file = rsyncd.log  #指定日志文件
  max connections = 5 #指定最大连接数
  uid = 0  #不指定uid,不加该选项无法使用任何账户
  gid = 0  #不指定gid

  # Module definitions
  # Remember cygwin naming conventions : c:\work becomes /cygwin/c/work

  #权限模块
  [test]   #模块名称
  path = /cygdrive/c/tongbu   ##指定需要备份的目录
  read only = false  #客户端是否只读,具体含义参考官方文档
  transfer logging = yes  #记录传输日志
  auth users = sanlangwu  #服务端与客户端对接/同步文件时所需的身份验证,即用户名
  secrets file = /cygdrive/c/rsync.password  #服务端与客户端对接/同步文件时身份验证所需的密码文件  格式为“用户名:密码”



注意:
auth users不是指定刚开始安装时指定的用户,刚开始安装时指定的erlangwu用户的作用是用作启动    rsync,而rsyncd.conf中指定的用户的作用是用作客户端和服务端连接用的身份验证。
  1. 按照配置文件中的指定,需要在rsyncd.conf文件所在的目录下创建密码文件——rsync.password。内容为“用户名:密码”,即“sanlangwu:123.com”。至此服务端的同步配置已经完成了。

需要注意的是在windows中创建文件时需要开启后缀名,防止创建时实际创建的文件名为rsync.password.txt,这样就无法识别咯,一定要注意~~~


rsync.password文件
cwRsync客户端的配置步骤:
  1. 在客户端的机器上解压cwRsync_4.1.0_kh.zip后,点击cwRsync_4.1.0_Installer.exe。


    安装rsync客户端
  2. 测试客户端与服务端的连接是否正常。开始->运行->cmd,在命令行中输入如下内容:


    测试与服务端rsync是否连通

其中873是cwRsyncServer默认的端口号,我们也可以在服务端的配置文件进行其他端口的指定使用。
出现如下界面则表示可以正常连通:
如果不连通,则可以从服务端防火墙端排查,关闭防火墙或者开放873端口。

正常连通
  1. 在客户端创建执行脚本文件,其中写入连接服务端进行同步的命令。在安装目录C:\Program Files\cwRsync\bin目录下新建fileRsync.cmd文件,内容如下。

     cd C:\Program Files (x86)\cwRsync\bin
     rsync --port=873 -vzrtopg --progress  --password-file=/cygdrive/c/pass/rsync.password [email protected]::test /cygdrive/c/target
    

sanlangwu:就是对应在服务端配置文件中指定的身份验证的用户名。
test:就是在服务端配置文件中指定的模块名称。
/cygdrive/c/target:指定将服务端文件同步到客户端的目录。
--password-file指明客户端的身份验证密码文件,跟服务端的那个密码文件是对应的。
这里注意,我在设置的过程中发现密码文件路径中不能有空格,不然会造成命令解析错误的。所以我单独把密码文件放到了c:\pass目录下。

4.创建客户端密码文件c/pass/rsync.password
客户端的密码文件中不需要写认证用户名。只需要填写sanlangwu的密码即可
123.com

5.在命令行中运行脚本文件fileRsync.cmd,同时观察客户端的同步文件结果目录,发现服务端的文件已经同步到这里,则说明cwRsync配置及应用成功。


开始同步
报错处理

1.服务端缺少lock file配置报错
解决方法:
更改服务端配置文件过程中误删除lock file配置导致的报错,在服务端配置文件中添加:
lock file = rsyncd.lock后重启RsyncServer进程即可


lock file报错

2.客户端同步时报错 客户端密码文件权限问题


密码文件权限问题

解决方法:
cd C:\Program Files\cwRsync\bin
chmod.exe -c 600 /cygdrive/c/pass/rsync.password
chown.exe administrator /cygdrive/c/pass/rsync.password
如果客户端没有chown.exe可以去服务端中拷贝,文章中所给的资源包中也有,拷贝到bin目录执行即可。

参考链接

如遇到其他问题可以参考哦~~
https://www.jb51.net/article/71728.htm
https://my.oschina.net/angerbaby/blog/224148

你可能感兴趣的:(windows服务器使用cwRsync实时同步)