Windows下文件同步工具Rsync的简单使用

发布于: 2009年08月15日

对于Windows下两台电脑间的文件同步,网上曾经热捧过微软的免费午餐“SyncToy”。当我在Windows下想进行文件同步时,考虑到微软对自己系统的熟悉程度,就首选了它。工具如其名,它就是个Toy, 派不上大用场。可能是我需要同步的文件数过于庞大,或者总大小超出了它所能承受的范围。在准备同步阶段,就给我一个类似I/O的错误,具体我也记不得了。微软的免费午餐于是就在第一时间被我清出了电脑。

Rsync一直是我比较喜欢的开源同步工具,在Linux 下一只都在使用。官网:http://www.samba.org/rsync,可以下载到源码包。在Download页面(http://www.samba.org/rsync/download.html)可以下载到RPM包。

Windows版的Rsync由另外一个组织编译打包的,名字叫cwRsync:

主页在:http://www.itefix.no/i2/node/10650

文件下载地址:http://sourceforge.net/projects/sereds/files/

我下载的是Server installer 3.1.0版:http://sourceforge.net/projects/sereds/files/cwRsync/3.1.0/cwRsyncServer_3.1.0_Installer.zip/download

下载完毕后,在两台需要同步的电脑上均安装一次。同步的源电脑可以安装启动到系统服务,方便启动。目标电脑就不需要了,因为不需要启动服务。下面假设安装目录为:C:\Program Files\ICW

源电脑配置文件位于:C:\Program Files\ICW\rsyncd.conf,可以简单配置如下:

#port=52326      #默认端口,可以注释掉,如果取消注释,并改为非默认端口,需要在客户端制定相同的端口
read only = yes   #只读模式
list = no
max connections = 10  #文件数多,网速快时,可以增加同时并行连接数
#secerts file = rsyncd.secrets    #这里设置为不需要用户登录,此行注释
motd file = rsyncd.motd
transfer logging = yes
use chroot = false
strict modes = false
#hosts allow = 192.168.1.100 #此处指定客户端IP, 注释为允许所有
log file = rsyncd.log
lock file = rsyncd.lock  #此行需要,否则可能会在同步时报错

# Module definitions
# Remember cygwin naming conventions : c:\work becomes /cygwin/c/work
#
[work]
path = /cygdrive/c/work      #制定需要同步的源文件夹,如上面所述,该文件夹实际指向的是d:/work。

#如果需要指定到e:\game,则应该写为/cygdrive/e/game
read only = true
transfer logging = yes

修改配置文件,保存,重启cwRsync服务。源端配置完毕,被同步目录为c:\work

配置同步目标电脑如下:

使用写字板输入如下内容:

@echo off
echo Starting synchronize folder: work
C:\Program Files\ICW\bin\rsync.exe -vazu –progress –delete 192.168.1.100::work .\work
pause

保存为.bat文件,名字随便起,比如rsync.bat

1,2,4行是DOS命令就不解释了

第3行 :

C:\Program Files\ICW\bin\rsync.exe 表示客户端执行同步命令的文件位置

-vazu 需要分开理解:

v表示输出同步时的信息;

a表示打包模式,等同于 -rlptgoD。r 递归检查目录;l 表示copy文件快捷方式;保留权限信息;t表示保留修改时间戳;g保留权限组信息;o保留所有者信息;D保留设备文件和特殊文件

z表示文件传送过程是进行压缩

u表示目标文件如果比源文件新,则跳过

–progress  文件传送过程显示进度

–delete  删除在源目录不存在但目标目录存在的文件

以上参数均可用rsync.exe -h 命令查到使用方式。且有更丰富的参数提供选择。

192.168.1.100 表示源ip

::work 表示源同步目录,使用源电脑配置文件中方括号内的名字([work])

.\work 表示同步到目标电脑执行命令时所在的目录(此处可理解为rsync.bat放置的目录)的work文件夹内

最后,双击rsync.bat文件执行,即可将源电脑work目录下所有文件同步到目标电脑rsync.bat所在目录的work文件夹下。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理

浙ICP备18056264号-1