在日常运维工作中,经常会遇到这样的情况:我们需要在无人值守的情况下完成文件、文件夹的同步过程,已实现周期性的备份,避免单点故障。本研究实现了本地Windows主机与远程Windows主机,本地Windows主机与远程Linux主机目录的定时自动同步。实验在Windows2003,REHL5.4下实验通过。

一、软件准备

Linux下有rsync,Windows下也有类似的软件,就是cwRsync,此软件分为服务器端/客户端。目前最新版本为:4.04版,cwRsyncServer_4.0.4_Installer,cwRsync_4.0.4_Installer。

cwRsync打包了Rsync和Cygwin,使用cwRsync可以进行快速的远程备份和同步。Rsync使用了Rsync算法,通过它可以非常快的进行远程文件的同步。这种算法只需要在链路上传递文件不同的部分,而不需要提前在一端准备好文件所有版本的。乍一看这似乎是不可能的,因为计算两个文件之间的不同,通常需要本地访问的这两个文件。

Rsync通常使用ssh进行数据通讯,安装它不需要任何特殊权限,但是你必须有一个可以运行ssh软件系统。

作为选择,rsync可以运行在守护进程模式,监听一个socket端口。这通常是用于公共文件的分发,虽然身份验证和访问控制是可利用的。Cygwin是一个Windows下类linux系统环境。它由一个DLL(cygwin1.dll),模拟大量的Linux API功能,以及工具的集合。

详细情况可通过http://itefix.no/cwrsync/了解。

二、初始化安装

cwRsync支持多种平台:client – NT/2000/XP/2003/Vista/7,Server – NT/2000'/2003/2008/Vista/7.

cwRsync已一个zip压缩包包含一个Windows下安装程序形式发布。解压下载文件,运行cwRsync_x.x.x_Installer.exe或者cwRsync_Server_x.x.x_Installer.exe(服务器版):

  1. 欢迎页面,点击“Next”进入 。
  2. 查看License协议。
  3. 根据安装包的不同选在安装组件:客户端安装包有一个可选项(Secure Channel Wrapper & Wizard),它做一个简单的工作,安装一个安全的连接方式与服务器端程序。
  4. 指定一个安装路径。
  5. 指定一个服务器的账户(仅服务器端程序)。
  6. 安装开始。可以点击“Details”按钮,查看更多关于安装的详细信息。

OK,cwRsync已经安装成功。

cwRsync服务器端,需要根据需要修改配置文件。安装过程中会自动创建SvcCWRSYNC用户,所属user组。如果定义了上传模块,则必须保证cwRsync server有正确的权限可以访问目录。可以通过开始菜单程序快速访问此配置文件。

cwRsync Server会安装为WINDOWS服务,启动参数为:--config rsyncd.conf --daemon --no-detach。默认自动启动。

三、实验环境

服务端(需要背同步的数据所在的服务器):192.168.1.10

客户端(需要将数据同步的服务器):192.168.1.20

需要被同步的数据:d:/resource

需要同步到d:/back/resource

Server:

修改rsyncd.conf

1: uid = 0 2: gid = 0 3: use chroot = false 4: strict modes = false 5: hosts allow = * 6: log file = rsyncd.log 7:   8: # Module definitions 9: # Remember cygwin naming conventions : c:\work becomes /cygwin/c/work 10: # 11: [RESOURCE] 12: path = /cygdrive/d/resource 13: read only = false 14: transfer logging = yes 15:  

.csharpcode, .csharpcode pre { font-size: small; color: black; font-family: consolas, "Courier New", courier, monospace; background-color: #ffffff; /*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt { background-color: #f4f4f4; 100%; margin: 0em; } .csharpcode .lnum { color: #606060; }
打开命令行窗口,然后执行: net start RsyncServer。服务器端准备完成。

Client:

打开命令行窗口,然后执行:rsync -avz 192.168.1.10::RESOURCE /cygdrive/e/back/resource

注意:如果刚刚没有把cwrsync的安装目录添加到windows的path变量中,系统是无法执行rsync命令的。添加方法,例如我把cwrsync的客户端安装在D:\Program Files\cwRsync,则需要把D:\Program Files\cwRsync\bin这个路径添加到windows的系统path变量中。添加之后需要重新打开cmd命令行窗口才可以执行上面的命令。

Bat脚本编写:

1: @ECHO OFF 2: REM ***************************************************************** 3: REM 4: REM CWRSYNC.CMD - Batch file to start rsync command (s). 5: REM 6: REM By David.Jin 7: REM ***************************************************************** 8: SETLOCAL 9: SET STIME=%date:~0,10% %time:~0,8% 10: SET CWRSYNCHOME=%PROGRAMFILES%\RSYNC 11: SET CWOLDPATH=%PATH% 12: SET PATH=%CWRSYNCHOME%\BIN;%PATH% 13: rsync -avz 192.168.1.10::RESOURCE /cygdrive/e/back/resource 14: SET ETIME=%date:~0,10% %time:~0,8% 15: ECHO 脚本开始时间: %STIME% 16: ECHO 脚本结束时间:%ETIME% 17: PAUSE

将该脚本保存为bat文件,使用windows自带计划任务就可以进行定期的服务器间文件同步。

总结:此方法对于正常情况下的Windows服务器间文件定期同步是非常有效的解决方案。但是对于大量小文件的同步性能上没有官方介绍那么出色。经常会出现各种main.c错误。从笔者这里也无法得到准确的回答。不过笔者确实多次查阅了rsync mail list,可以非常明确的说:使用ssh协议进行文件同步,程序运行会更加稳定,同时性能消耗较大,同步效率降低。

遇见问题时,祝你好运。

转载于:https://blog.51cto.com/jinpeng/476539

Windows 文件同步方案讨论相关推荐

  1. 微信windows版_Windows也可以安逸的无缝同步文件--从Mac OS 转战到Windows后的文件同步方案...

    因为工作原因由原来的MacBook pro更换为到surface book乞丐版(原因为mac下的AutoCAD太难用,autodesk你们就不能学学adobe公司吗?ps相当顺滑可惜我用不到),然而 ...

  2. 服务器文件夹和电脑文件夹同步软件哪个好,windows文件同步备份软件-文件夹同步工具哪个好?...

    曾有个客户致电询问自己一些重要的数据保存至D盘文件夹内,但是这些文件经常会改动,每次都是的手动复制粘贴至移动硬盘备份保存,有没有什么工具可以实现一键同步备份?今天就给大家介绍windows文件同步备份 ...

  3. windows文件同步备份软件-文件夹同步工具哪个好?

    曾有个客户致电询问自己一些重要的数据保存至D盘文件夹内,但是这些文件经常会改动,每次都是的手动复制粘贴至移动硬盘备份保存,有没有什么工具可以实现一键同步备份?今天就给大家介绍windows文件同步备份 ...

  4. windows文件同步工具

    windows 文件同步工具: realTimesync freefilesyncsecond copy   second copy注册码: Name:爱学府软件园 注册码:15BF-E46C-672 ...

  5. Syncthing文件同步方案完全攻略(亲测有效)

    云同步方案有很多种,比如 Seafile 和 Nextcloud,这两者都是正儿八经的云盘,功能多,体型庞大,部署起来很麻烦,如果应用场景仅仅是需要同步一下公司电脑和家里电脑的文档,犯不上用这两者. ...

  6. windows下同步方案-cwRsync

    1. cwRsync简介 cwRsync是Rsync在Windows上的实现版本,Rsync通过使用特定算法的文件传输技术,可以在网络上传输只修改了的文件. cwRsync主要用于Windows上的远 ...

  7. 在线与本地文件同步方案

    本地 远程 目前 FreeFileSync Syncthing 以前 钥匙优盘 goodsync,群辉,teamviewer 如果数据没有备份,可以认为这个数据是不存在的. 如果数据没有备份,可以认为 ...

  8. 基于inotify的文件监控方案

    最近在做一个linux上的文件监控程序,2.6内核提供了inotify机制,这仅仅是个机制,任何策略都必须自己实现,这一点从inotify不提供递归接口就可以看出来,如果我实时监控到目录被创建,那么马 ...

  9. 【同步】文件同步命令rsync |自动同步软件FreeFileSync

    目录 linux文件同步 即看即用 详细说明 FreeFileSync 同步文件 1.设置同步源和目标 2.手动同步 3.自动同步 设置同步方向 批处理 其他类似软件 linux文件同步 即看即用 本 ...

最新文章

  1. 基于海康机器视觉算法平台的对位贴合项目个人理解 | CSDN原力计划
  2. 内核中的几种内存分配器
  3. tab菜单的点击的动态效果和内容页面的关联显示jQuery
  4. oracle使用游标批量删除数据,oracle 游标批量处理数据
  5. Spring @Autowird
  6. 从自卑的阴影中走出来
  7. Eclipse—在Eclipse中如何创建JavaWeb工程
  8. python双循环_双for循环到Python列表理解
  9. 微信小程序简单论坛实现demo,供参考。
  10. 计算机内置管理员,Win10无法使用内置管理员账户打开应用怎么解决?
  11. DSP48E功能描述
  12. 苹果手机屏幕上的圆点如何设置呢?
  13. 苹果手机屏幕上的圆点怎么设置?(开启悬浮按钮)
  14. win10修改中文用户名
  15. SOA面向服务体系的架构
  16. quartz的schedulerFactory实现解析
  17. 指尖江湖李忘生鸿蒙初开,剑网3指尖江湖李忘生怎么玩 使用攻略
  18. 我们进入“超空间”时代
  19. Github复现之D-LinkNet(补全了验证部分代码,效果还行)
  20. 1421 净现值查询

热门文章

  1. 利用SetConsoleTextAttribute函数设置控制台颜色
  2. 计算机组装活动口号,广教育、多技能、求发展喜迎计算机系第五届电脑文化节...
  3. linux 编译3g驱动_linux下使用3G拨号上网 以及3g驱动设置
  4. Linux中netstat工具详解
  5. Linux编程手册读书笔记第五章(20140408)
  6. Java进阶:java字符串定位语句
  7. 美团Android开发工程师岗位职能要求,高级面试题+解析
  8. Qt样式表之一:Qt样式表和盒子模型介绍
  9. 集合里面的 E是泛型 暂且认为是object
  10. RDLC系列之五 初试XAML