Windows下的Rsync
    
    
    
    安装
   
    
    
    介绍
   
Rsync是一个有名的Linux端同步工具,最大的特点是参数非常详细,可以实现多种多样的传输要求,该工具本身是一个Linux平台软件,在Windows端对应的是cwRsync,使用方法和原来的Rsync类似。由于cwRsync只是用Cygwin将rsync移植到Windows平台的,所以可以用于linux到Windows、Windows到Linux、Windows到Windows等等。
    
    
    安装版本
   
    服务端:cwRsyncServer_4.1.0_Installer.exe
    
    客户端:cwRsync_4.1.0_Installer.exe
   
    
    
    服务端安装
   
    运行 cwRsyncServer_4.1.0_Installer.exe ,一步步默认安装完毕
    
    安装目录 : 安装目录在 D:\Program Files\ICW
    
    安装过程中 会提示创建 用于启动rsync 的账号 这一步默认即可
    
    如果要修改 密码必须符合复杂性要求(系统启用了密码策略)
    
    或者在本地安全策略关闭密码复杂性要求
    
    否则 安装完毕后在系统找不到 RsyncServer服务
   
    
    
    修改安装目录下 rsync.conf
   
uid = 0 
gid = 0 
use chroot = false
strict modes = false
hosts allow = *
log file = rsyncd.log
port = 873
 
[Repositories]
path =  /cygdrive/d/backup/Repositories
secrets file = /cygdrive/d/Program Files/ICW/rsyncd.secrets
list = true
auth users = username
read only = false
    
    
    服务端配置介绍
   
    hosts allow – 设定允许访问本服务端的客户端的IP, *代表任何客户端都可以访问。多个IP用 逗号分割
    
    port –指定服务端端口
    
    [Repositories] – 是一个初始的模块 (客户端连接的时候需要)
    
    path – 模块对应的文件路径,这里work后面有没有正向斜线”/”都一样。后面客户端的中的斜线比较重要。
    
    read only – 设置目录是否只读
    
    transfer logging – 是否记录日志
    
    uid = 0 和 gid = 0 – 如果不增加 从linux下同步文件过来会有损坏。
    
    secrets file 该文件保存客户端使用的用户和密码(格式 username:password)
    
    /cygdrive/d/Program Files/ICW/rsyncd.secrets 是unix风格的文件路径
    
    对应windows下的文件路径为
    
    D:\Program Files\ICW\rsyncd.secrets 并且 rsyncd.secrets默认没有的 需要手动建立 文件内容的格式如:“username:password”
   
    
    
    目录权限设置
   
服务端存放文件的目录需要做一定修改 将安装cwRsyncServer_4.1.0_Installer.exe时创建的服务器运行用户 添加到该文件夹的用户列表里并赋予全部权限
    
    
    启动
   
    如果启动提示权限问题 设置如下
    
    chmod.exe -c 600 “/cygdrive/d/Program Files/ICW/rsyncd.secrets”
    
    chown.exe rsync “/cygdrive/d/Program Files/ICW/rsyncd.secrets” //rsync 替换成安装时创建的用户
   
在服务里启动RsyncServer
    
    
    客户端安装
   
    运行 cwRsync_4.1.0_Installer.exe 一步步默认安装完毕后
    
    安装目录在 D:\Program Files\cwRsync
   
    
    
    修改客户端安装目录的同步脚本cwrsync.cmd
   
@echo off
: 设置传入脚本的参数PARA1
SET PARA1=%1%
: 设置客户端程序的家目录
: SET RSYNC_CLIENT_HOME="/cygdrive/d/Program Files/cwRsync/"
: 设置客户端程序传输文件时使用的密码,对应于后面SERVER_FILE中的user。
SET PASS_FILE="/cygdrive/d/Program Files/cwRsync/rsync.pass"
 
: 设置日志文件路径
SET LOG_FILE="/cygdrive/d/Program Files/cwRsync/rsync.log"
 
: 指定远端服务端所使用的端口
SET PORT=873
 
: 指定远端服务中设定的用户,服务器IP,模块。格式必须是 username@IP::modulename
SET SERVER_FILE_PATH=username@192.168.100.52::Repositories
 
: 指定客户端本地对应的文件存放路径,注意这里的末尾需要带上正向斜线"/",代表这是个目录,:
: REM 当将本地文件CLIENT_FILE推送到远端时,没有斜线则代表推送该文件夹,有斜线则代表推送该文件夹下面的文件。:
: 例外,若是从远端拉取文件到本地时,这个斜线有无都没有关系。所以,我们最好都加上斜线,代表我们同步该文件夹下的所有文件。:
SET CLIENT_FILE_PATH=/cygdrive/d/bakup/auto/
 
: 调用rsync程序执行文件同步,以下命令将%FILE1%同步到%FILE2%。
: bin\rsync -avzP   --delete-after --progress --password-file=%PASS_FILE% --log-file=%LOG_FILE% --port=%PORT%  %SERVER_FILE_PATH%  %CLIENT_FILE_PATH%
 
if "%PARA1%"=="get"  ( 
    echo  ====== starting %PARA1% files from %SERVER_FILE_PATH% .. ======
    "./bin/rsync" -avzP   --delete-after --progress --password-file=%PASS_FILE% --log-file=%LOG_FILE% --port=%PORT%  %SERVER_FILE_PATH%  %CLIENT_FILE_PATH%
    echo  ====== successfully %PARA1% files !
	)
if "%PARA1%"=="pull" (
    echo  ====== starting %PARA1% files to %SERVER_FILE_PATH% .. ======
    "./bin/rsync" -avzP  --delete-after  --progress --password-file=%PASS_FILE% --log-file=%LOG_FILE% --port=%PORT%  %CLIENT_FILE_PATH%  %SERVER_FILE_PATH% 
	echo  ====== successfully %PARA1% files !
	)
    rsync.pass 配置 需要自己创建 直接 第一行写密码就可以
    
    
     注意: 以上配置路径中若有空格 一定要加上引号
    
   
    
    
    运行
   
    执行以下两个命令 才能执行
    
    复制服务端安装目录下的 chown.exe和chomod.exe放在客户端目录下
    
    在客户端安装目录下执行
    
    chmod.exe 600 “/cygdrive/d/Program Files/cwRsync/rsync.pass”
    
    chown.exe administrator “/cygdrive/d/Program Files/cwRsync/rsync.pass” //administrator 换成自己的管理员用户名
   
在cmd命令行中执行 cwrsync.cmd get 或者 cwrsync.cmd pull
    
    
    添加Windows计划任务
   
    打开计划任务->创建任务
    
    
    
    触发器设置
    
    
    
    操作设置
    
    
    
    
     注意: 程序脚本中有空格 下面的 起始于 一定要配置 D:\Program Files\cwRsync\
    
   
    
    
    常见问题
   
- 
安装完成 在服务里找不到RsyncServer服务 
 
 一种原因是:
 
 安装过程中 会提示创建 用于启动rsync 的账号 这一步默认即可
 
 如果要修改 密码必须符合复杂性要求(系统启用了密码策略)
 
 或者在本地安全策略关闭密码复杂性要求
 
 否则 安装完毕后在系统找不到 RsyncServer服务
 
 另一种原因:
 
 在虚拟机里安装 需要安装 Vmware tools
- 
password file must be owned by root when running as root 
 
 复制服务端安装目录下的 chown.exe和chomod.exe放在客户端目录下
 
 在客户端安装目录下执行
 
 chmod.exe 600 “/cygdrive/d/Program Files/cwRsync/rsync.pass”
 
 chown.exe administrator “/cygdrive/d/Program Files/cwRsync/rsync.pass” //administrator 换成自己的管理员用户名
- 
Windows Server 2008 R2通过计划任务定时执行bat文件 显示成功但实际未执行 
 
 计划任务的 操作配置中
 
 程序脚本中有空格 下面的 起始于 一定要配置 D:\Program Files\cwRsync\
 
