目标

将Windows服务器上某个目录的数据完全同步到Linux服务器。Windows作为服务端,开启873端口,Linux 作为客户端,从远端向Windows 服务器拉取数据。


Windows部署cwRsyncServer

1、下载cwRsyncServer4.1,进行安装,在安装时可以自定义用户名密码,但必须确保密码的复杂度,否则系统无法成功创建用户和服务。

wKiom1muEyDgVrleAADegCMgPpU905.jpg


2、安装完毕后,进入对应目录配置conf文件,默认的安装路径在C:\Program Files (x86)\ICW,修改此目录下的rsyncd.conf文件:

use chroot = false
strict modes = false
hosts allow = *
log file = rsyncd.log
port = 873
uid = 0        
gid = 0
# Module definitions
# Remember cygwin naming conventions : c:\work becomes /cygwin/c/work
#
[rsyncdata]                     # 同步模块,可设置多个
path = /cygdrive/d/rsyncdata    #此处表示D:/rsyncdata 目录
read only = false
transfer logging = yes
hosts allow = 192.168.1.231    #此处为Linux服务器地址
auth users = rsync
secrets file = /cygdrive/d/rsyncd.secrets  #密码文件路劲

3、创建同步文件夹和密码文件:

  •  在D盘创建rsyncd.secrets文件,确认后缀名为secrets而不是txt,并添加账号密码内容:

     rsync:rsync

  • 创建或者选择需要同步数据的文件夹,并为文件夹添加SvcCWRSYNC的用户权限(full contronal)。

4、启动服务:

在run命令框中输入 services.msc ,进入服务管理界面,设置RsyncServer服务自启动

wKioL1muPrOSrTIwAAHX_PG9GNc676.jpg

5、配置Windows防火墙,在入栈规则中添加允许访问873端口。


Linux服务器同步文件

1、在Linux服务器上安装rsync:

 yum install rsync -y

2、配置密码文件:

echo "rsync" > /etc/rsyncd.secrets
chmod 600 /etc/rsyncd.secrets

3、创建/rsyncdata/data目录使用如下命令同步文件:

rsync -vazrtopqg --delete --password-file=/etc/rsyncd.secrets \
  rsync@192.168.1.171::rsyncdata /rsyncdata/data/

4、可将上面的命令添加到定时任务脚本,每天凌晨2点执行一次:

0 2 * * * /bin/bash /scripts/rsyncbak/bak.sh &> /dev/null