实现:Windows不同服务器之间文件或数据同步(客户端自动向服务端同步) 来自 Vincent 博客
记得以前写过 Windows2008 下数据同步cwRsync安装配置
今天来更新下,其实大部分还是一样的!高手绕道,请勿喷,主要就是配置文件修改下了,比较简单点,主要还是给自己留个步骤,顺便分享出来!
准备工作:
//环境:
Windows 2008 Server R2(服务端,IP:192.168.1.231)
Windows 2008 Server R2(客户端,IP:192.168.1.235)
cwRsyncServer_4.1.0_Installer
cwRsync_4.1.0_Installer
cwRsync_4.1.0下载地址如下百度网盘,如地址失效请联系作者邮箱[email protected][记得说明理由哦!]
http://pan.baidu.com/s/1pJLSk7x
服务端安装配置:
1.安装,cwRsyncServer_4.1.0_Installer,记下默认用户名和密码(如图),过程略……
ps : 本人没记过一样运行。
//编辑安装目录下,rsyncd.conf
打开配置文件粘贴一下代码
use chroot = false
strict modes = false
hosts allow = *
log file = rsyncd.log
uid = 0
gid = 0
[data]
path =/cygdrive/d/www/
read only = false
transfer logging = yes
list = yes
代码说明,请注意尾部!
//启动服务并设置自启动
//“win+r”组合键打开运行对话窗口,输入
services.msc
//找到“RsyncServer”服务,选择“自启动”并启动服务,如图
/修改文件权限
//赋予要同步的文件读取权限给rsync用户,默认用户名“SvcCWRSYNC”,“所在文件夹”�C右键属性�C“安全”�C“编辑”�C“添加”用户名�C“确定”
//设置Windows防火墙
//添加防火墙规则或关闭防火墙
//添加防火墙规则
【防火墙】�C【高级设置】�C【入站规则】�C【新建规则】�C【程序】�C【下一步】�C【此程序路径】�C“选择rsync程序所在路径,默认安装路径:%ProgramFiles% (x86)\ICW\bin\rsync.exe”�C【下一步】�C【允许连接】�C【下一步】�C【下一步】�C“名称随便填写,最好便于记忆和理解”�C【完成】
【防火墙】�C【高级设置】�C【出站规则】�C【新建规则】�C【程序】�C【下一步】�C【此程序路径】�C“选择rsync程序所在路径,默认安装路径:%ProgramFiles% (x86)\ICW\bin\rsync.exe”�C【下一步】�C【允许连接】�C【下一步】�C【下一步】�C“名称随便填写,最好便于记忆和理解”�C【完成】
//重启Windows Firewall服务,直接选择重启,不要先停用后重启,否则后果自负^_^
//创建密码文件
//新建密码文件,名字随意起(这里我的是“test.password.txt”),内容格式“密码”,对应服务端模块密码配置文件里的密码
test
//修改系统环境变量
【开始】�C【计算机】�C【属性】�C【更改设置】�C【高级】�C【环境变量】�C【系统变量】�C“修改‘Path’的值,变量值添加cwRsync的安装路径,默认路径‘C:\Program Files (x86)\cwRsync\bin;’”
//同步脚本
rsync -vzrtopg �Cprogress �Cdelete 192.168.1.231::data /cygdrive/d/data
//bat脚本
@echo off
echo.
echo 开始同步数据,请稍等…
echo.
cd C:\Program Files (x86)\cwRsync\bin
rsync -vzrtopg �Cprogress �Cdelete 192.168.1.231::data /cygdrive/d/data
echo.
echo 数据同步完成
echo.
//脚本参数
-a #相当于-rlptgoD
-r #递归
-l #拷贝链接文件
-p #保持文件原有权限
-t #保持文件原有时间
-g #保持文件原有用户组
-o #保持文件原有属主
-D #相当于块设备文件
-z #传输时压缩
-P #传输进度
-v #verbose,详细模式输出
-u #是只同步已经更新的文件,避免没有更新的文件被重复更新一次,不过要注意两者机器时钟的同步
�Cprogress #显示备份过程
�Cdelete #完全匹配服务端,删除客户端里有而服务端里没有的文件
SvcCWRSYNC #连接用户名
@192.168.5.223 #服务端IP
::test #服务器端的配置模块
/cygdrive/ #要同步到客户端服务器的目录
�Cpassword-file #指定密码文件,只需包含密码而不用包含用户名;*经测试Windows下无用
<c:\test.password.txt #追加密码,可避免手动输入密码
//rsyncd.conf 配置说明
uid = 0 #不指定uid将无法使用任何账户
gid = 0 #同上……
use chroot = false #不使用chroot
strict modes = false #静态模式
hosts allow =192.168.1.0/24 #允许访问的IP,网段,多个用“,”隔开
log file = rsyncd.log #日志记录,默认安装目录下
pid file = rsyncd.pid #进程号目录
max connections = 10 #最大连接数
lock file = rsyncd.lock
# Module definitions
# Remember cygwin naming conventions : c:\work becomes /cygwin/c/work
#
[test] #服务端模块,多个模块自建
path = /cygdrive/e/test #服务端目录,“e/test”路径
read only = yes #只读模式
transfer logging = no #透明传输
transfer logging = yes #传输日志
ignore errors = yes #忽略IO错误
list = no #文件列表
hosts deny = * #不允许hosts allow以外的任何IP访问
auth users = SvcCWRSYNC #认证用户名
secrets file = test.password #认证用户的用户名和密码存储位置