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\