黑帽联盟

 找回密码
 会员注册
查看: 2228|回复: 2
打印 上一主题 下一主题

[资源教程] Windows下cwRsyncServer双机数据连续同步部署

[复制链接]

895

主题

38

听众

3323

积分

管理员

Rank: 9Rank: 9Rank: 9

  • TA的每日心情
    无聊
    4 天前
  • 签到天数: 1644 天

    [LV.Master]伴坛终老

    全网最全的,自己亲测,实测成功。

    下载cwRsyncServer服务器端与客户端的安装文件:
    服务端下载: cwRsyncServer_4.0.5_Installer.zip (3.38 MB, 下载次数: 2)
    客户端下载: cwRsync_4.0.5_Installer.zip (3.4 MB, 下载次数: 1)

    众所周知,Linux系统可以用rsync来实现文件或目录的同步,windows系统下也一样可以。我们现在就用cwRsync来实现windows server 2008系统下的文件同步。

    一、系统环境
    操作系统:Windows server 2008 R2
    更新源服务器:192.168.0.108
    目的服务器:192.168.0.132
    服务端:cwRsyncServer_4.0.5_Installer
    客户端:cwRsync_4.0.5_Installer

    二、更新源服务器安装配置(cwRsync服务端)
    1. 双击cwRsyncServer_4.0.5_Installer.exe打开安装界面,然后就一路下一步,安装cwRsync服务端默认有一个管理员帐户SvcCWRSYN,可自行设置用户名和密码。
    211.png

    2. 修改RsyncServer的配置文件(C:\Program Files (x86)\ICW\rsyncd.conf)
    • use chroot = false  #不使用chroot
    • strict modes = false  #静态模式
    • hosts allow = *  #配置全局哪些IP可以访问
    • log file = rsyncd.log  #log文件名,可以指定路径
    • pid file = rsyncd.pid
    • port = 8173  #默认端口873
    • uid = 0  #不指定uid,不加这一行将无法使用任何账户
    • gid = 0  #不指定gid
    • max connections = 10  #最大连接数10
    • lock file = rsyncd.lock
    • # Module definitions
    • # Remember cygwin naming conventions : c:\work becomes /cygwin/c/work
    • #
    • [test]
    • path = /cygdrive/d/wwwroot  #需要同步的路径(D:\wwwroot目录)
    • read only = false  #只读权限
    • transfer logging = yes  #记录传输日志
    • ignore errors  #忽略无关的IO错误
    • list = no  #不列文件表
    • hosts allow = 192.168.0.132/255.255.255.0  #允许访问的IP地址
    • hosts deny = *  #不允许hosts allow以外的任何IP访问

    3.安装完成后,在系统服务中,启动RsyncServer服务,并设置为开机自启动
    212.png

    4、用netstat –an 查看8173端口是否已监听,在客户端服务器telnet 192.168.0.108 8173看端口是否已通。(这里我使用的是默认的端口873)
    213.png

    三、目的服务器安装配置(cwRsync客户端)
    1. 双击cwRsync_4.0.5_Installer.exe打开安装界面,然后一路下一步,直到安装完成。
    214.png

    2. 手动测试同步
    打开cmd窗口,在路径C:\Program Files (x86)\ICW\bin下输入:rsync -vzrtopgPu --progress rsync://192.168.0.108:8173/test /cygdrive/d/wwwroot

    参数说明
    -a 参数,相当于-rlptgoD,
    -r 是递归
    -l 是链接文件,意思是拷贝链接文件;
    -p 表示保持文件原有权限;
    -t 保持文件原有时间;
    -g 保持文件原有用户组;
    -o 保持文件原有属主;
    -D 相当于块设备文件;
    -z 传输时压缩;
    -P 传输进度;
    -v verbose,详细模式输出;
    -u是只同步已经更新的文件,避免没有更新的文件被重复更新一次,不过要注意两者机器时钟的同步;
    --progress 显示备份过程;
    --delete 删除那些DST中SRC没有的文件,用作同步文件用;

    3.定时自动更新配置
    (1)编写rsync.bat批处理脚本
    • @echo off
    • set rsynclog="C:\rsynclog\rsync.log"
    • set nowtime=%date:~0,10% %time%
    • echo %nowtime% >> %rsynclog%
    • cd /d C:\"Program Files (x86)"\ICW\bin
    • rsync -vzrtopgPu --progress rsync://192.168.0.108:8173/test /cygdrive/d/wwwroot >> %rsynclog%
    • @echo -------------------------------------------------- >> %rsynclog%
    • @echo. >> %rsynclog%

    (2)设置计划任务(每5分钟同步一次)
    开始-管理工具-任务计划程序
    右击“任务计划程序本地”,打开创建任务界面。输入姓名(任务名称),选择启动任务的帐户,选中“不管用户是否登录都要运行”。
    215.png

    点击“触发器”-“新建”,打开新建触发器界面。按下图进行设置,每5分钟同步一次。
    216.png


    点击“操作”-“新建”,打开新建操作界面。按下图进行设置,选择之前编辑好的bat脚本,然后“确定”。
    217.png

    “条件”和“设置”均使用默认设置,然后“确定”,输入运行此任务的用户帐户的密码,点击“确定”,创建任务计划完成。
    218.png

    四、注意防火墙,如果不会设置防火墙规则(放行873或8173端口),就直接把防火墙给关闭了,不然同步的时候可能会出错。

    五、重要说明
        对于多台服务器做文件同步,最好是连同数据备份一起做了。举个例子:有A、B、C、D四台服务器,需要保证四台服务器一个或多个目录的数据一致性,也就是 BCD需要从A上同步一个或多个目录的数据,那么A就是更新源服务器,BCD就是目的服务器。现在有个问题,当A的数据出现问题或丢失,那么BCD三台的 数据都会出现问题并且丢失,为了保证A的数据一定是正确的,我们在更新A服务器之前,就要先对A做数据备份。下面是个简单的bat脚本,可以实现数据的自 动备份并上传至FTP服务器,可以把它加入到任务计划里面定期执行它。
    Backup.bat脚本内容如下:

    • @echo off
    • set today=%date:~0,10%
    • set nowh=%time:~0,2%
    • set nowtime=%date:~0,10% %time%
    • set rar="c:\Program Files\WinRAR\rar.exe"
    • set ftplist="E:\baklog\ftpls.txt"
    • set baklog="E:\baklog\backup.log"
    • set FtpSrv=192.168.0.109
    • set FtpPort=21
    • set FtpUser=bak
    • set FtpPwd=bak1q2w3e
    • echo %nowtime% >> %baklog%
    • ::Rar files
    • %rar% a E:\backup\backup_%today%_%nowh%.rar F:\xuad >> %baklog%
    • ::Upload files by ftp
    • echo open %FtpSrv% %FtpPort% > %ftplist%
    • echo user %FtpUser% %FtpPwd% >> %ftplist%
    • echo cd backup >>%ftplist%
    • echo bin >> %ftplist%
    • echo prompt >> %ftplist%
    • echo lcd E:\backup  >>%ftplist%
    • echo Put backup_%today%_%nowh%.rar >> %ftplist%
    • echo quit   >> %ftplist%
    • echo bye    >> %ftplist%
    • ftp -n -s:%ftplist% >> %baklog%
    • echo. > %rarlist%
    • @echo -------------------------------------------------- >> %baklog%
    • @echo. >> %baklog%






    附:rsync排除目录的使用方法
    需求场景:当前希望将一台server上面的一个文件夹同步到5个client上面去,但是又不希望同步所有文件,由个别文件是不需要同步的,所以必须在server的配置文件中添加排除同步的文件,这就需要用到了exclude这个参数。这个可以在client上面使用,也可以直接在server上面的进行配置。下面的例子是在server的rsyncd.conf文件上面配置的。

    案例:config文件目录下有test1、test2和test3这三个目录,这三个目录当中都有一个test.txt文件。下面通过不同的配置信息来实现不同的同步要求。

    ENVISION——config——test1——test.txt

            ||———test2——test.txt

            ||———test3——test.txt

    5.1通过exclude关键字实现test1目录的例外
    1. [config]
    2. path = /cygdrive/d/ENVISION/config
    3. #exclude from = rsync.exclude
    4. exclude = test1/
    5. read only = false
    6. transfer logging = yes
    7. lock file = rsyncd.lock
    复制代码
    5.2通过exclude from关键字实现test2和test3目录的例外
    1. [config]
    2. path = /cygdrive/d/ENVISION/config
    3. exclude from = rsync.exclude
    4. #exclude = test1/
    5. read only = false
    6. transfer logging = yes
    7. lock file = rsyncd.lock
    复制代码
    其中rsync.excluede文件跟rsyncd.conf在同一目录下,其中的文件内容是,其中“/”非常重要。
    1. test2/
    2. test3/
    复制代码
    5.3排除目录下的指定文件
    exclude和exclude from不仅仅指限制与目录,也可以使指定的文件名。

    在test1目录下添加一个文件test2.txt,然后进行如下配置
    1. [config]
    2. path = /cygdrive/d/ENVISION/config
    3. exclude from = rsync.exclude
    4. exclude = test1/test.txt
    5. read only = false
    6. transfer logging = yes
    7. lock file = rsyncd.lock
    复制代码
    帖子永久地址: 

    黑帽联盟 - 论坛版权1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关
    2、本站所有主题由该帖子作者发表,该帖子作者与黑帽联盟享有帖子相关版权
    3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和黑帽联盟的同意
    4、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
    5、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
    6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
    7、黑帽联盟管理员和版主有权不事先通知发贴者而删除本文

    勿忘初心,方得始终!

    1

    主题

    0

    听众

    158

    积分

    黑帽新手

    Rank: 2

  • TA的每日心情
    开心
    2020-3-18 13:41
  • 签到天数: 75 天

    [LV.6]常住居民II

    谢谢分享出来
    来自安卓客户端来自安卓客户端
    回复

    使用道具 举报

    1

    主题

    0

    听众

    7

    积分

    黑帽菜鸟

    Rank: 1

    该用户从未签到

    宝塔不是有这个功能吗?
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 会员注册

    发布主题 !fastreply! 收藏帖子 返回列表 搜索
    回顶部