使用cwRsync实现windows服务器文件定时同步

一.背景

现在的服务器都会使用负载均衡技术, 用于解决互联网架构中的高并发高可用的问题. 但这会出现一个问题, 用户在A服务器上传了一个文件之后, 下次该用户访问B服务器就会出现找不到该文件的情况. 这时候我们就需要做文件同步, 同时文件同步也可以用来做备份.


二.解决方案

在网上找到一些文件同步方案,最后决定使用cwRsync这个软件。cwRsync是基于cygwin平台的rsync软件包,支持windows对windows、windows对Linux、Linux对windows高效文件同步。由于CwRsync已经集成了cygwin类库,因此安装的时候可以省去cygwin包。Cwrsync还集成了OpenSSH for windows,可以实现Linux 下Rsync一模一样的操作。使用 cwRsync 来同步文件后,只需要对一台主服务器进行文件修改,其他镜像服务器可以自动同步,包括文件的更新、删除、重命名等。

演示视频


三.下载和安装

1.链接: 百度网盘  提取码: ejua

2.安装

进行数据同步我们用到了两个工具cwRsyncClient和cwRsyncServer,目前有两台电脑IP分别是:192.168.2.251和192.168.2.252,接下来把192.168.2.252用做Server端也就是我们常说的服务端,另外的就是客户端了

第一步:Server端安装cwRsyncServer_4.0.5_Installer,过程没有什么复杂的一路默认就好了,截图如下:

接下来就是打开cwRsyncServer安装路径C:\Program Files (x86)\ICW,其中rsyncd.conf是cwRsyncServer配置文件

以“记事本”方式打开rsyncd.conf配置文件,将原有内容清空,粘贴以下内容(跟linux的rsync server配置基本没有太大的区别,参数都是相通的)。



use chroot = false

strict modes = false

hosts allow = *

uid = 0

gid = 0

max connections = 10

strict modes = false

log file = rsyncd.log

lock file = rsyncd.lock

[itbiancheng]

path = /cygdrive/d/www

read only = true

transfer logging = yes

auth users = 123

secrets file = /cygdrive/c/Program Files (x86)/ICW/rsyncd.secrets

comment = 内网拉取


部分参数解释:

hosts allow = *:* 表示任何电脑都可以进行连接,只允许指定IP进行连接需要把星号换成指定IP即可

log file = rsyncd.log:日志路径,当前目录下

[itbiancheng]:模块名称

path = /cygdrive/d/www:要同步的路径,如果是e盘www文件夹,则path = /cygdrive/e/www,前面必须加上cygdrive,这点和linux不同

read only = true:不可写,只读

auth users = 123:其中123是用户名

secrets file = /cygdrive/c/Program Files (x86)/ICW/rsyncd.secrets:为用户和密码的文件,是需要手动创建的,格式为123:654321,123是帐号,654321是密码。PS:如果不想加上用户和密码,可以直接不写auth users和secrets file。

comment = 内网拉取:这里是个注释,你写什么都可以


                                                        rsyncd.secrets 文件 格式


注意:

默认rsync使用873端口,自行开启windows873端口,如果想使用其他端口自行添加port参数。

全部配置好后,自行开启rsync服务,计算机右键-管理-服务和应用程序-服务,在服务中找到RsyncServer,更改成自动启动,然后确认即可。



第二步:客户端配置:

我这里将cwRsyncClient解压到了D盘cwRsync目录

在D:\cwRsync目录下创建一个mima.txt,内容为654321

在D:\cwRsync目录下创建一个bat批处理,内容如下:

cd D:\cwRsync

rsync -azvP --password-file=/cygdrive/d/cwRsync/mima.txt [email protected]::itbiancheng /cygdrive/d/www

pause


然后运行这个bat批处理就可以进行同步了,如果无法同步,就在原有bat批处理文件中添加pause,然后再次运行,查看报错信息

常见报错问题可以参考:此链接

至此windows下使用rsync进行同步配置完成,总体来讲和linux区别不大,参数都是互通的



上面的做法,每次同步都要手动运行bat文件, 要想做到定时同步,就需要用到windows任务计划程序

四.通过计划任务客户端定时同步文件

步骤



参考文章: https://www.itbiancheng.com/linux/4891.html

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