Rsync是一个开放源代码的应用程序,提供快速增量文件传输。 rsync在遵守GNU通用公共许可证下可以自由使用,目前正在由Wayne Davison维护。cwRsync是Rsync for Windows的包装与客户端GUI。您可以使用cwRsync实现快速的远程文件备份和同步。rsync使用Rsync的算法,它提供了一个非常快速的方法,使远程文件同步。它只发送整个链路中的文件的差异,而不需要这两个文件集存在于预先链路的端部中的一个来实现。乍一看,这似乎是不可能的,因为两个文件之间的差异列表的计算通常需要本地访问这两个文件。
rsync通常使用SSH进行通讯。它不需要安装任何特殊权限。你必须,然而,有一个工作的ssh系统。此外,rsync可以在'守护'模式运行,监听套接字。这通常用于公共文件分发,虽然认证和访问控制是可用的。
软件特色
cwRsync是Rsync在Windows上的实现版本,Rsync通过使用特定算法的文件传输技术,可以在网络上传输只修改了的文件。cwRsync主要用于Windows上的远程文件同步备份和同步,它包含Cygwin DLL和适用Cygwin版本的Rsync两部分。
Rsync是一种快速和非常灵活的文件复制工具。它可以在本地复制到/从另一台主机上的任何远程shell,或者/从远程rsync进程。它提供了大量的用于控制其行为的各个方面,并允许该组文件非常灵活规范的复制选项。它是著名的增量转移算法,从而降低了通过发送只有源文件和现有文件在目的地之间的差异在网络上发送的数据量。 Rsync是广泛用于备份和镜像,并作为日常使用改进的复制命令。
Cygwin是一个用于Windows的Linux环境。它包括一个DLL(cygwin1.dll),它模拟大量的Linux API功能,以及工具的集合。
服务器端安装完毕后,修改配置文件rsyncd.conf如下(默认位置:C:\Program Files\ICW\)
部分重要参数解释如下
use chroot = false #不使用chroot
strict modes = false #使用静态模式
hosts allow = * #允许所有IP访问
log file = rsyncd.log #日志文件
pid file = rsyncd.pid #进程文件
port = 873 #服务端口号
uid = 0 #不限定用户
gid = 0 #不限定组
# Module definitions
# Remember cygwin naming conventions : c:\work becomes /cygwin/c/work
[test] #认证的模块名(别名,可以自己取),在client端需要指定使用
path = /cygdrive/d/test #需要做镜像同步的目录,如d:/test
read only = false #是否只读
transfer logging = yes #是否记录传输日志
注意
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 Files\ICW\doc\rsyncd.conf.html
在Server端机器上运行services.msc,选择服务"RsyncServer"配置启动类型为"自动",后启动该服务。
Client端安装完毕后需要新建一个test.bat文件,内容如下:
@echo off set RSYNC_HOME=C:\Program Files\cwRsync\bin cd %RSYNC_HOME% C: rsync -avzP --progress --delete rsync://192.168.85.236:873/test /cygdrive/d/test
命令参数详解
-avzP
-a 参数,相当于-rlptgoD:
-r 是递归
-l 是链接文件,意思是拷贝链接文件
-p 表示保持文件原有权限
-t 保持文件原有时间
-g 保持文件原有用户组
-o 保持文件原有属主
-D 相当于块设备文件
-v 详细模式输出
-z 传输时压缩
-P 显示传输进度
--progress 显示备份同步过程
--delete 删除Client中有Server没有的文件,即如果Server删除了这一文件,那么client也相应把文件删除,保持真正的一致
rsync://192.168.85.236:873/test 配置Sever的IP地址及需要同步的模块名(Server rsyncd.conf中配置)
/cygdrive/d/test 存放同步文件的Client本地目录D:\test
运行bat,Client会进行文件远程同步
∨ 展开