配置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\rsyncd.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 Files\cwRsync\bin下输入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:\rsynclog\rsync.log"
  3. set nowtime=%date:~0,10% %time%
  4. echo %nowtime% >> %rsynclog%
  5. cd /d C:\"Program Files"\cwRsync\bin
  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 Files\WinRAR\rar.exe"
  6. set ftplist="E:\baklog\ftpls.txt"
  7. set baklog="E:\baklog\backup.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:\backup\backup_%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:\backup >>%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%

Windows Server 2008文件同步的更多相关文章

  1. 配置Windows server 2008文件同步[转]

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

  2. windows server 2008 R2 Enterprise 间实时同步之FreeFileSync 部署过程

    WindowsServer间实时同步之FreeFileSync 部署过程 1. 实验主机信息 IP 操作系统 源目录 目标目录 10.155.0.80 Windows Server 2008 R2 D ...

  3. [转]Win7、Windows Server 2008下无法在Windows Service中打开一个已经存在的Excel 2007文件问题的解决方案

    昨天,组里一个小朋友告诉我,他写的报表生成服务中无法打开一个已经存在的Excel 2007文件,他的开发环境是Win7.Visual Studio .Net 2008(Windows Server 2 ...

  4. Windows Server 2008通过计划任务定时执行bat文件

    前段时间在Windows Server 2008安装了一套基于MySQL数据库的软件,处于数据安全的考虑,希望每天能够自动进行数据库备份.我在别人脚本的基础上自己写了一个数据库备份的bat脚本,双击该 ...

  5. Windows Server 2008 R2之管理Sysvol文件夹

    以下是Sysvol文件夹示例图 Domain文件夹:是策略的实体,是策略和脚本存放地. Staging Areas:交换区,它用来存放多台DC之间交换(复制)的信息.DC上的相关信息(GPO)首先将要 ...

  6. Windows Server 2008 R2中上传和下载文件

    在 Windows Server 2008 R2 中,使用服务器管理器来启用或禁用 Windows 功能,那在这个上面如何上传和下载文件呢? 1.在“服务器管理器”->“角色”->“web ...

  7. Windows server 2008 R2搭建主域控制器 + 辅域控制器

    一:实验模拟环境: Zhuyu公司是一个小公司,随着公司状大,公司越来越重视信息化建设,公司考虑到计算机用户权限集中管理及共享资源同步管理, 需要架设一套AD域控服务器,考虑到成本和日后管理问题,计划 ...

  8. Windows server 2008系统基本优化

    前几天用上了Windows server 2008刚开始还真不习惯,毕竟是做服务器用的系统和娱乐操作系统有很大区别.先总结几点,以后慢慢更新 安装Win2008驱动: 大部分支持vista系统的驱动都 ...

  9. Windows Server菜鸟宝典之一:Windows Server 2008 R2 AD服务器搭建

        1.对于将要安装成为DC的服务器来讲,其系统配置以及基本的磁盘规划在此就不在累述了,但是关键的网络连接属性是必须要注意的.可以通过打开本地连接的属性来进行配置其IP属性.作为服务器DC的IP地 ...

随机推荐

  1. Device eth0 does not seem to be present

    解决办法: 首先,打开/etc/udev/rules.d/70-persistent-net.rules内容如下面例子所示: # vi /etc/udev/rules.d/70-persistent- ...

  2. sql表连接left join,right join,inner join三者之间的区别

    sql表连接left join,right join,inner join区别 left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 (以左表数据为基准,不足补为NULL) ...

  3. python学习笔记26(python中__name__的使用)

    在python中,每个py文件都是一个模块,也都是一个可执行文件,即包含main方法.因此,对每个py文件,可以单独运行,也可以import它给其他客户使用,这两种情况不一样. 1. 如果模块是被导入 ...

  4. qwt 6.1.0集成进Qt creator 2.8.1步骤

    环境准备与文件编译 ·关于Qt 发现一个Qt正确安装的教程,非常棒!http://www.wikihow.com/Install-Qt-SDK-on-Ubuntu-Linux Qt版本是4.8.5,在 ...

  5. GitHub 有哪些优秀的项目

    GitHub 有哪些优秀的项目 http://www.zhihu.com/question/20584141

  6. JPA2 关于 PagingAndSortingRepository

    And --- 等价于 SQL 中的 and 关键字,比如 findByUsernameAndPassword(String user, Striang pwd): Or --- 等价于 SQL 中的 ...

  7. select count(*)和select count(1)的区别 (转)

    A 一般情况下,Select Count (*)和Select Count(1)两着返回结果是一样的 假如表沒有主键(Primary key), 那么count(1)比count(*)快, 如果有主键 ...

  8. MySql Error: Can't update table in stored function/trigger

    MySql Error: Can't update table in stored function/trigger because it is already used by statement w ...

  9. struts2 标签库 介绍

    struts2.0里的标签没有分类,只用在jsp头文件加上<%@ taglib prefix="s" uri="/struts-tags" %>就能 ...

  10. C语言不是C++的严格子集

    C语言是C++的子集吗?C++是在C语言的基础上扩展而来并包含所有C语言的内容吗? 回复: 从实用角度讲,C++属于C语言的一个超集,基本上兼容ANSI C.但是从编译角度上讲,C语言的有些特性在C+ ...