cwRsync

下载地址:https://www.itefix.no/i2/cwrsync-get

包括客户端和服务端  版本4.0.5

一、windows服务器端安装配置
1.下载安装服务端
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

修改配置内容如下,参数解释:

use chroot = false # 不使用chroot 
strict modes = false #使用静态模式

pid file = rsyncd.pid # 日志记录文件
log file = rsyncd.log # 日志记录文件 
[test] # 这里是认证的模块名,在client端需要指定 
path = /cygdrive/e/bak # 需要做镜像的目录,如e/bak(此目录需要给  SvcCWRSYNC 账户的读取权限)
transfer logging = yes # 记录传输日志
read only = yes # 只读
list = no # 不允许列文件
hosts allow = 192.168.0.0/255.255.252.0 
hosts deny = * # 禁止除192.168.1.0/255.255.255.0段外的连接IP
uid = 0 #解决运行后的 @ERROR : invalid uid 错误
gid = 0 #解决运行后的 @ERROR : invalid gid 错误 
lock file = rsyncd.lock #解决文件被锁定无法复制问题
#auth users = SvcCWRSYNC # 认证的用户名,这里没有这行,则表明是匿名 #secrets file = /cygdrive/c/pass/rsync.passwd # 认证文件名
启动服务
我们在控件面板-->管理工具-->服务,找到该服务 RsyncServer 并启动它

创建认证文件 c/pass/rsync.passwd 内容格式:用户:密码,如SvcCWRSYNC:star888 启动RsyncServer服务并保证开机自动重启,服务器端配置完毕。
二、 客户端安装配置
1.下载客户端安装
2.通过命令建一个批处理
3.rsync -av rsync://192.168.2.242/test /cygdrive/e/test

rsync -avzP --progress --delete --password-file=/cygdrive/c/pass/rsync.passwd [email protected]::test /cygdrive/e/test
意思是将192.168.2.242的服务端下的test模块下的e:\bak目录同步到客户端的e:\test下
命令参数解释:
-avzP
-a 参数,相当于-rlptgoD,-r 是递归 -l 是链接文件,意思是拷贝链接文件;-p 表示保持文件原有权限;-t 保持文件原有时间;-g 保持文件原有用户组;-o 保持文件原有属主;-D 相当于块设备文件;
-z 传输时压缩;
-P 传输进度;
-v verbose,详细模式输出
-u是只同步已经更新的文件,避免没有更新的文件被重复更新一次,不过要注意两者机器时钟的同步
--progress
显示备份过程
--delete              删除那些DST中SRC没有的文件
--password-file    指定密码文件,只需包含密码而不用包含用户名
[email protected]::test
SvcCWRSYNC      登陆服务器端的用户名  
192.168.2.242     服务器端的ip地址
test                   服务器端指定的认证模块名,多个同步作业靠此模块名区分  
/cygdrive/e/test   存放服务器端同步文件的本地目录

因为只是最简单的数据同步,所以就不使用 ssh 了,直接启动 rsync 服务就可以了。然后按照 usage 上面教的。
rsync -av /cygdrive/d/test localhost::test
完成了数据的同步工作,一切顺利。顺便说一下,/cygdrive/d 是安装完 cwRsync ,会自动将系统上所有的盘 mount 成 /cygdrive/x ,x 表示盘符,小写的,并把安装目录 mount 成 / 了。

二、linux作为server时与windows间的同步
1、准备机器,此时使用linux作为server
server---192.168.0.132 (linux)
client---192.168.0.202 (windows)

2、安装与配置linux主机的rsync
(1)查看linux上是否安装rsync:
#rpm -qa|grep rsync
若无则安装,或者使用tar编译安装
#rpm -ivh rsync-2.6.8-3.1.rpm

(2)打开rsync服务
#chkconfig xinetd on
#chkconfig rsync on

(3)创建 rsyncd.conf 文件
#touch /etc/rsyncd.conf
#vi /etc/rsyncd.conf(内容如下:)
uid = nobody
gid = nobody
max connections = 4

[www]
path = /www
comment = BACKUP WWW
ignore errors
read only = yes
list = no
auth users = wwwuser
hosts allow=192.168.0.202
secrets file = /etc/wwwuser.pass

(4)启动基于xinetd进程的rsync服务
#/etc/init.d/xinetd start

3、配置windows的rsync客户端 
(1)安装client端的rsync包
(2)打开cmd,执行同步计划:
cd C:\Program Files\cwRsync\bin
rsync -vzrtopg --progress --delete [email protected]::www /cygdrive/d/test
(此时须输入root用户的密码,就可进行同步了。)

定时任务

下面介绍一下如何通过windows中的“任务计划”来创建定时任务,执行定时同步。

      首先在客户端的机器上的: 控件面板->任务计划->点击“添加任务计划”, 在相应的弹出窗口中点击下一步,然后点击导航窗口中的“浏览”按钮,如下,并从中选择之前创建的批处理文件”dnt_sync.bat”:

     cwrsync3   

      这时系统会显示如下窗口提示当前计划任务执行方式,我这里选择每天执行(一次):

     cwrsync4

      到这里,系统就会创建一个叫dnt_sync的任务计划,同时在接下来的窗口中提示任务的开始执行时间:

    cwrsync5

 

      这里不做任何修改,直接点击下一步,接着是身份验证(通常是管理员身份),必定任务计划非同儿戏,要有足够的权限才可以玩的转:)

    cwrsync6

      最后点击完成,就创建了一个任务计划。只不过它是按天执行的,如果我们希望其每分钟执行一次又该怎么办呢,其实很简单,只要在用鼠标点击新创建的任务计划,并在弹出菜单中选择“属性”,这时在弹出窗口的“日程安排”中点击“高级按钮”,如下:

    cwrsync7

 

      这时就会弹出一个叫“高级计划选项”的子窗口,在其它做如下设置:

    cwrsync8

      到这里,这个计划任务就会每天24小时,以每分钟运行一次的方式来同步之前的那两个文件夹了。

      最近使用软件的时间超过了开发软件的时间,导致开发的代码量不像之前那么多了,呵呵。不过这类软件还是很有应用场景的,估计将来会用的上,故写作本文与大家分享的同时以“备份”处之。

你可能感兴趣的:(cwRsync)