zoukankan      html  css  js  c++  java
  • Windows Server 2008文件同步

    配置Windows Server 2008文件同步

     
    摘要: 众所周知,Linux系统可以用rsync来实现文件或目录的同步,windows系统下也一样可以。我们现在就用cwRsync来实现windows server 2008系统下的文件同步。 一、系统环境 操作系统:Windows server 2008 R2 更新源服务器 ...
     
     
    众所周知,Linux系统可以用rsync来实现文件或目录的同步,windows系统下也一样可以。我们现在就用cwRsync来实现windows server 2008系统下的文件同步。
    一、系统环境
    操作系统:Windows server 2008 R2
    更新源服务器:192.168.0.108
    目的服务器:192.168.0.132
    服务端:cwRsyncServer_4.1.0_Installer
    客户端:cwRsync_4.1.0_Installer
    二、更新源服务器安装配置(cwRsync服务端)
    1. 双击cwRsyncServer_4.1.0_Installer.exe打开安装界面,然后就一路下一步,安装cwRsync服务端默认有一个管理员帐户SvcCWRSYN,可自行设置用户名和密码。

    2. 修改RsyncServer的配置文件(C:Program Files (x86)ICW syncd.conf)

    1. use chroot = false #不使用chroot
    2. strict modes = false #静态模式
    3. hosts allow = * #配置全局哪些IP可以访问
    4. log file = rsyncd.log #log文件名,可以指定路径
    5. pid file = rsyncd.pid
    6. port = 8173 #默认端口873
    7. uid = 0 #不指定uid,不加这一行将无法使用任何账户
    8. gid = 0 #不指定gid
    9. max connections = 10 #最大连接数10
    10. lock file = rsyncd.lock
    11. # Module definitions
    12. # Remember cygwin naming conventions : c:work becomes /cygwin/c/work
    13. #
    14. [test]
    15. path = /cygdrive/f/xuad #需要同步的路径(F:xuad目录)
    16. read only = false #只读权限
    17. transfer logging = yes #记录传输日志
    18. ignore errors #忽略无关的IO错误
    19. list = no #不列文件表
    20. hosts allow = 192.168.0.132/255.255.255.0 #允许访问的IP地址
    21. hosts deny = * #不允许hosts allow以外的任何IP访问

    3. 安装完成后,在“服务”里面就可以看到cwRsync对应的服务了,安装完成后需要手动启动该服务。将RsyncServer的启动方式设置成自动,然后启动该服务。注:针对需要同步的目录,别忘记给SvcCWRSYNC用户读取的权限。

    4. 用netstat –anp tcp查看8173端口是否已监听,在客户端服务器telnet 192.168.0.108 8173看端口是否已通。

    三、目的服务器安装配置(cwRsync客户端)

    1. 双击cwRsync_4.1.0_Installer.exe打开安装界面,然后一路下一步,直到安装完成。

    2. 手动测试同步

    在路径C:Program FilescwRsyncin下输入rsync.exe -avzP --progress –delete rsync://192.168.0.108:8173/test /cygdrive/f/xuad,出现如下图信息说明同步成功。

    参数说明

    -a 参数,相当于-rlptgoD,

    -r 是递归

    -l 是链接文件,意思是拷贝链接文件;

    -p 表示保持文件原有权限;

    -t 保持文件原有时间;

    -g 保持文件原有用户组;

    -o 保持文件原有属主;

    -D 相当于块设备文件;

    -z 传输时压缩;

    -P 传输进度;

    -v verbose,详细模式输出;

    -u是只同步已经更新的文件,避免没有更新的文件被重复更新一次,不过要注意两者机器时钟的同步;

    --progress 显示备份过程;

    --delete 删除那些DST中SRC没有的文件,用作同步文件用;

    3.定时自动更新配置

    (1)编写rsync.bat批处理脚本

    1. @echo off
    2. set rsynclog="C: synclog sync.log"
    3. set nowtime=%date:~0,10% %time%
    4. echo %nowtime% >> %rsynclog%
    5. cd /d C:"Program Files"cwRsyncin
    6. rsync.exe -avzPu --progress --delete rsync://192.168.0.108:8173/test /cygdrive/c/xuad >> %rsynclog%
    7. @echo -------------------------------------------------- >> %rsynclog%
    8. @echo. >> %rsynclog%

    (2)设置计划任务(每5分钟同步一次)

    开始-管理工具-任务计划程序

    右击“任务计划程序本地”,打开创建任务界面。输入姓名(任务名称),选择启动任务的帐户,选中“不管用户是否登录都要运行”。

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

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

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

    四、测试中出现的错误

    1. 命令输入错误

    红框标记出来的地方应该是rsyncd.conf文件里的模块名,而不是同步目录名。
    2.防火墙阻止了此端口

    需要在防火墙的入站规则里添加一条允许此端口的规则。

    五、重要说明
    对于多台服务器做文件同步,最好是连同数据备份一起做了。举个例子:有A、B、C、D四台服务器,需要保证四台服务器一个或多个目录的数据一致性,也就是BCD需要从A上同步一个或多个目录的数据,那么A就是更新源服务器,BCD就是目的服务器。现在有个问题,当A的数据出现问题或丢失,那么BCD三台的数据都会出现问题并且丢失,为了保证A的数据一定是正确的,我们在更新A服务器之前,就要先对A做数据备份。下面是个简单的bat脚本,可以实现数据的自动备份并上传至FTP服务器,可以把它加入到任务计划里面定期执行它。
    Backup.bat脚本内容如下:
    1. @echo off
    2. set today=%date:~0,10%
    3. set nowh=%time:~0,2%
    4. set nowtime=%date:~0,10% %time%
    5. set rar="c:Program FilesWinRAR ar.exe"
    6. set ftplist="E:aklogftpls.txt"
    7. set baklog="E:aklogackup.log"
    8. set FtpSrv=192.168.0.109
    9. set FtpPort=21
    10. set FtpUser=bak
    11. set FtpPwd=bak1q2w3e
    12. echo %nowtime% >> %baklog%
    13. ::Rar files
    14. %rar% a E:ackupackup_%today%_%nowh%.rar F:xuad >> %baklog%
    15. ::Upload files by ftp
    16. echo open %FtpSrv% %FtpPort% > %ftplist%
    17. echo user %FtpUser% %FtpPwd% >> %ftplist%
    18. echo cd backup >>%ftplist%
    19. echo bin >> %ftplist%
    20. echo prompt >> %ftplist%
    21. echo lcd E:ackup >>%ftplist%
    22. echo Put backup_%today%_%nowh%.rar >> %ftplist%
    23. echo quit >> %ftplist%
    24. echo bye >> %ftplist%
    25. ftp -n -s:%ftplist% >> %baklog%
    26. echo. > %rarlist%
    27. @echo -------------------------------------------------- >> %baklog%
    28. @echo. >> %baklog%
  • 相关阅读:
    创建onlineworkspace问题仍没解决?
    Javascript 脚本错误.
    从HtmlInputFile控件中读取文件 保存到document libary中.
    Request.Form.Get
    DataGrid 模板列里 寻找所在列的隐藏列的值
    test
    重写ProgressDialog,实现各种个性进度条需求(含源码)
    Android自定义控件实现环形播放进度条
    为你的应用添加悬浮窗功能
    Android 左右滑动 控件
  • 原文地址:https://www.cnblogs.com/hllnj2008/p/4103848.html
Copyright © 2011-2022 走看看