同步软件Rsync 客户端(cwRsync)是一款把Linux下经典同步工具Rsync移植到Windows平台的免费软件。它保留了Rsync的核心算法,能在网络传输中只发送文件发生变化的部分,大幅减少同步所需的时间和带宽。cwRsync特别适合Windows环境下的远程文件备份与镜像同步,既能完整保存目录树和文件系统,也能维持原有文件的权限、时间戳、软硬链接等属性。第一次运行时需要复制全部内容,之后每次只增量传输修改过的数据,并且传输过程支持压缩,可进一步降低流量占用。

1、 cwRsync安装包内包含Cygwin DLL和适配Cygwin版本的Rsync,两者缺一不可
2、 它支持通过scp、ssh以及直接socket方式连接,也允许匿名传输
3、 除了Windows,Rsync本身也支持Linux平台,跨平台同步没有障碍
4、 安装服务端时,程序会提示设置服务运行所需的用户名与密码,可以自定义,也可以保留默认值
- 安装服务端后,进入安装目录,找到rsyncd.conf配置文件,通常位于C:\Program Files\ICW\rsyncd.conf
- 配置文件中的路径必须采用POSIX风格,例如D:/data应写成/cygdrive/d/data,直接写Windows路径可能导致Cygwin无法识别
- 配置中hosts allow = 192.168.1.21表示仅允许该IP地址访问,请按实际需求修改
- strict modes = false表示不验证用户密码,pid = 0与uid = 0则指定匿名访问
- auth users用于定义访问某模块的用户名,secrets file则指向对应的密码文件路径
- 密码文件格式为“用户名:密码”,每行一个,注意文件权限不能对其他用户组开放,否则验证会失败
- 需要将密码文件的所有者设置为运行Rsync服务的用户(如cwRsyncServer),并赋予该用户读取权限
- 配置完成后,在服务管理器中找到RsyncServer服务并手动启动
- 若系统开启了防火墙,需在防火墙规则中添加入站TCP端口28950
- 验证服务状态可在DOS命令行执行telnet 192.168.1.20 28950,若连接成功并显示@RSYNCD: 30.0等字符,说明服务运行正常
- 客户端安装完成后,先用telnet测试能否连通服务端IP及端口,出现@RSYNCD字样代表连接正常
- 打开DOS窗口进入客户端安装目录下的bin文件夹,例如C:\Program Files\cwRsync\bin
- 输入同步命令时可参考以下写法:rsync --port=28950 -vzrtopg --progress --delete 192.168.1.20::data_backup /cygwin/f/dataBackup --password-file=/cygdrive/e/Setting/Rsync/rsync_db.ps
- 命令中--port指定端口,-vzrtopg与--progress用于显示详细同步过程,--delete表示删除客户端中与服务端不同的数据,保证两边完全一致
- /cygwin/f/dataBackup对应Windows下的F:\dataBackup目录,data_backup则是服务端配置文件中定义的模块名称,192.168.1.20为服务端IP
- 执行命令的用户同样需要具备密码文件的读取权限,并设为该文件的所有者
1、 建立批处理文件SyncDB_NoAuth.cmd,把上述rsync同步命令保存进去,方便后续调用
2、 在Windows XP或Server 2003中,通过控制面板的任务计划添加该批处理;在Windows 7或Server 2008则进入控制面板的管理工具找到任务计划
3、 配置任务时选择每天执行,设定起始时间后,在属性中可进一步设置重复执行,例如每20分钟运行一次,持续24小时,即可实现自动定期同步
4、 遇到rsync: read error: Connection reset by peer错误,多数是服务端rsync服务没有启动,开启服务即可
5、 出现@ERROR: chdir failed时,检查服务端同步目录权限,cwrsync默认用户为Svcwrsync,需为该用户分配目录访问权限
6、 @ERROR: failed to open lock file可通过在rsyncd.conf中增加lock file = rsyncd.lock解决
7、 密码文件找不到或路径错误时,确认文件确实存在且使用POSIX风格路径,例如/cygdrive/e/Setting/Rsync/rsync_db.pwd
8、 @ERROR: auth failed表示密码或用户名不正确,若两者无误,检查远程服务器密码文件权限是否被设为600
9、 password file must not be other-accessible提示密码文件权限过度开放,需要chmod 600 rsyncd.pwd,Windows下则要更改所有者
10、 @ERROR: invalid uid nobody可在rsyncd.conf中增加uid = 0和gid = 0两行解决
11、 @ERROR: chroot failed通常是同步目录不存在或无权限,创建目录并修正权限即可
12、 @ERROR: Unknown module表明服务器端没有定义该模块,需核对模块名
13、 连接失败提示No route to host时,可能对方未开机或防火墙阻挡,需要开启873端口或自定义的rsync端口
14、 rsync: chown "" failed错误发生在Linux向Windows同步时,去掉同步权限参数可解决
15、 @ERROR: daemon security issue -- contact admin一般因同步目录含软连接文件,需在服务端开启use chroot = yes
(您的评论需要经过审核才能显示)
0条评论