因为需要在两台机器上同步一些数据,在网上找了一下,发现 cwRsync 是可以的。尝试了一下
1、安装
安装的过程很简单,也很顺利,从 cwRsync 网站上下载的 server and client ,都安装了一下,不过后来发现,其实是不需要安装 client 的,只要 server 就可以了,server 包括了 client 的功能。安装完 server 后,会在 service 中增加 Rsync 和 ssh 服务。
2、配置
配置了一下 rsyncd.conf
use chroot = false
strict modes = false
hosts allow = *
log file = rsyncd.log
pid file = rsyncd.pid
# Module definitions
# Remember cygwin naming conventions : c:\work becomes /cygwin/c/work
#
[test]
path = /cygdrive/c/work
read only = false
transfer logging = yes
只是将 [test] 中的 path 改成了我本机的备份目录
[test]
path = /cygdrive/d/backup
read only = false
transfer logging = yes
3、数据同步
因为只是最简单的数据同步,所以就不使用 ssh 了,直接启动 rsync 服务就可以了。然后按照 usage 上面教的。
rsync -av /cygdrive/d/test localhost::test
完成了数据的同步工作,一切顺利。顺便说一下,/cygdrive/d 是安装完 cwRsync ,会自动将系统上所有的盘 mount 成 /cygdrive/x ,x 表示盘符,小写的,并把安装目录 mount 成 / 了。
4、绿色安装
我将 cwRsync copy 到另一台机器上,试图不安装就启动 cwRsync server,启动过程比较正常,只要运行 rsync --config=$config_file --daemon --no-detach 就可以了,这里面的 $config_file 指的是前面配置的 rsyncd.conf ,路径要写成 /cygdrive/d 这样的形式。
5、安装成服务
程序包中带了 cygwin 的 cygrunsrv ,可以通过这个命令将 rsync server 做成 windows 服务,但我试了一下,路径中有空格没有成功,命令是这样的
cygrunsrv.exe -I "Rsync" -p /cygdrive/d/cwRsyncServer/bin/rsync.exe -a "--config=/cygdrive/d/cwRsyncServer/rsyncd.conf --daemon --no-detach" -f "Rsync"
也很顺利的安装成服务了。
6、问题二
惨的是当我在第二台机器上同步数据的时候,权限却成了问题,同步过去的文件(目录)所有者是 SYSTEM,不是我,而且我没有访问的权限,只有在安全中把自己加进来(我用管理员帐户),给自己权限,才能访问。
或者在 cygwin 下使用 chmod 给自己授权,和在 windows 中给自己授权没什么区别。
最后:
问题2已经解决
方法:只要把 cwRsyncServer 这个目录 mount 到 / ,就可以了,估计是 rsync 同步数据的时候,会调用 /bin/chmod 来授权,如果是安装版的,这个目录会在安装的时候 mount 好。 (好象不是这个问题了)
posted on 2007-05-20 14:36
哈哈的日子 阅读(13860)
评论(2) 编辑 收藏 所属分类:
Java