目标

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


Windows部署cwRsyncServer

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

wKiom1muEyDgVrleAADegCMgPpU905.jpg


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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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:

1
  yum  install  rsync  -y

2、配置密码文件:

1
2
echo  "rsync"  /etc/rsyncd .secrets
chmod  600  /etc/rsyncd .secrets

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

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

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

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