zoukankan      html  css  js  c++  java
  • Windows远程数据同步工具cwRsync

    1. cwRsync简介

    cwRsync是Rsync在Windows上的实现版本,Rsync通过使用特定算法的文件传输技术,可以在网络上传输只修改了的文件。

    cwRsync主要用于Windows上的远程文件同步备份和同步,它包含Cygwin DLL和适用Cygwin版本的Rsync两部分。

    cwRsync分为Server和Client,本文使用的版本为4.1.0,下载地址如下:

    cwRsyncServer v4.1.0:http://pan.baidu.com/s/1eQpaIVw

    cwRsync v4.1.0:http://pan.baidu.com/s/1pJ3B1FX

    下面举例介绍Server及Client端的配置使用,本文使用环境如下:

    Server: 127.0.0.1

    Client: 127.0.0.1

    2. Server安装使用

    2.1 安装

    一路点击Next,使用默认配置安装即可。

    2.2 配置

    修改配置文件rsyncd.conf如下(默认位置:C:Program FilesICW):

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

    部分重要参数解释如下:

     1 use chroot = false
     2 strict modes = false
     3 hosts allow = * #允许所有IP访问
     4 log file = rsyncd.log #日志文件
     5 pid file = rsyncd.pid #进程文件
     6 port = 873 #服务端口号
     7 uid = 0 #不限定用户
     8 gid = 0 #不限定组
     9 
    10 # Module definitions
    11 # Remember cygwin naming conventions : c:work becomes /cygwin/c/work
    12 #
    13 [test] #认证的模块名,在client端需要指定使用
    14 path = /cygdrive/d/test #需要做镜像同步的目录,如d:/test
    15 read only = false
    16 transfer logging = yes
    View Code

      1. uid=0和gid=0 需要指定,否则后面client进行同步时会报错:

        @ERROR: invalid uid nobody rsync error: error starting client-server protocol (code 5) at main.c(1516) [Receiver=3.0.8]

      2. 上述只是简单的配置示例,还有很多其他的选项,可以参考帮助文件:C:Program FilesICWdoc syncd.conf.html

    2.3 启动服务

    在Server机器上运行services.msc,选择服务"RsyncServer"配置启动类型为"自动",后启动该服务。

    3. Client安装使用

    3.1 安装

    与Server相同,一路点击Next,使用默认配置安装即可。

    3.2 使用

    新建一个test.bat文件,内容如下:

    @echo off
    set RSYNC_HOME=C:Program FilescwRsyncin
    cd %RSYNC_HOME%
    rsync -avzrP --progress --delete rsync://127.0.0.1:873/test /cygdrive/e/test

    命令参数详解:

    -avzP  
    -a 参数,相当于-rlptgoD:
    -r 是递归
    -l 是链接文件,意思是拷贝链接文件
    -p 表示保持文件原有权限
    -t 保持文件原有时间
    -g 保持文件原有用户组
    -o 保持文件原有属主
    -D 相当于块设备文件
    
    -v 详细模式输出
    -z 传输时压缩
    -P 显示传输进度
    
    --progress 显示备份同步过程
    --delete 删除Client中有Server没有的文件,即如果Server删除了这一文件,那么client也相应把文件删除,保持真正的一致
    
    rsync://127.0.0.1:873/test 配置Sever的IP地址及需要同步的模块名(Server rsyncd.conf中配置) /cygdrive/e/test 存放同步文件的Client本地目录e:	est

    运行test.bat,Client会进行文件远程同步,截图如下:

    4.Windows下rsync服务无法启动的解决方法

      服务器在意外重启后,RsyncServer服务不能启动,提示“本地计算机上的reyncserver服务启动后又停止了”,方法是将安装目录下的rsyncd.pid文件删除或改名即可,再重新启动RsyncServer服务,OK,成功了,rsyncd.pid文件会自动重新生成。

    5.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目录的例外

    [config]
    path = /cygdrive/d/ENVISION/config
    #exclude from = rsync.exclude
    exclude = test1/
    read only = false
    transfer logging = yes
    lock file = rsyncd.lock

    5.2通过exclude from关键字实现test2和test3目录的例外

    [config]
    path = /cygdrive/d/ENVISION/config
    exclude from = rsync.exclude
    #exclude = test1/
    read only = false
    transfer logging = yes
    lock file = rsyncd.lock

    其中rsync.excluede文件跟rsyncd.conf在同一目录下,其中的文件内容是,其中“/”非常重要。

    test2/
    test3/

    5.3排除目录下的指定文件

    exclude和exclude from不仅仅指限制与目录,也可以使指定的文件名。

    在test1目录下添加一个文件test2.txt,然后进行如下配置

    [config]
    path = /cygdrive/d/ENVISION/config
    exclude from = rsync.exclude
    exclude = test1/test.txt
    read only = false
    transfer logging = yes
    lock file = rsyncd.lock

    转载: http://lovesoo.org/windows-remote-data-synchronization-tool-cwrsync.html

  • 相关阅读:
    初识spring boot
    javascript的console命令
    (转)三角函数计算,Cordic 算法入门
    (原+转)ROC曲线
    (转)(VS2013 )由于应用程序配置不正确,程序未能启动”--原因及解决方法
    (转)最小二乘法拟合圆公式推导及vc实现[r]
    (原)Eclipse中将JNI生成的so打包成jar的步骤
    (原)Eclipse的java中文件读写
    (原)Microsoft Source Reader的简单使用
    (转)android ndk 给结构体赋值的方法
  • 原文地址:https://www.cnblogs.com/xiaoliang-y/p/5202222.html
Copyright © 2011-2022 走看看