Windows下的Rsync(cwRsync)

  • Post author:
  • Post category:其他




安装



介绍

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\



常见问题

  1. 安装完成 在服务里找不到RsyncServer服务

    一种原因是:

    安装过程中 会提示创建 用于启动rsync 的账号 这一步默认即可

    如果要修改 密码必须符合复杂性要求(系统启用了密码策略)

    或者在本地安全策略关闭密码复杂性要求

    否则 安装完毕后在系统找不到 RsyncServer服务

    另一种原因:

    在虚拟机里安装 需要安装 Vmware tools

  2. 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 换成自己的管理员用户名

  3. Windows Server 2008 R2通过计划任务定时执行bat文件 显示成功但实际未执行

    计划任务的 操作配置中

    程序脚本中有空格 下面的 起始于 一定要配置 D:\Program Files\cwRsync\



版权声明:本文为cyb0408原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。