rsync在windows下应用免费版

  • srv:cwRsyncServer_4.1.0_Installer.exe
  • cli:cwRsync_4.1.0_Installer.exe
    下载地址: https://pan.baidu.com/s/1kHQSVEODxbtXpxxMnT1S2A
    提取码:9q4m
    此资源来自上车的博客,博客中对如何安装也有明确的说明,在此感谢!下面是我使用中出现的情况在此补充。

rsync简介

rsync命令是一个远程同步工具,目前由rsync.samba.org维护,可以通过AN\WAN快速同步多台主机间的文件,它使用的就是rsync算法达到本地和远程两个主机之间文件同步,该算法是增量算法,即只同步两个文件的不同部分,而不是每次同步整个文件,所以速度是相当快。第一次连通完成时,会把整份文件传输一次,以后则就只需进行增量备份。

服务端安装

解压双击执行安装,一路默认安装成功,查看系统服务列表是否有RsyncServer。
services
注意这是默认安装成功,会自动创建图中标出的用户。如果列表中没有RsyncServer则是安装失败,通常是因为系统不允许应用创建用户,安装的时候手动指定当前用户。
customusr
安装成功后,服务登陆用户为指定用户
servicesspeci

服务端配置

  • 参数配置
    svrconfig
    我这里的配置去掉了所有注释,带注释的时候有问题。
  • 密码配置
    svrpwdconfig

配置完成启动服务,查看端口8733监听成功,服务部署完成。

客户端安装

解压双击执行安装,一路默认即可。

客户端配置

  • 密码配置
    在合适的地方创建一个客户端目录,把密码文件放在里面,例如:
    clidic
    密码文件中只需要密码,跟服务端有所区别
    clipwdconfig
  • 启动批处理配置
    创建 同步.bat
@echo off
d:
cd D:\Program Files (x86)\cwRsync\bin

rsync.exe -avzP --progress --password-file=rsync.password test_rsync@192.168.1.210::testwin --port=8733 /cygdrive/d/rsyncclient >> D:/rsyncclient/syslog.log

pause

右键管理员执行批处理,服务端文件同步过来则成功。

异常处理

  • password file must not be other-accessible 如果出现以上错误,是密码文件权限造成的,更改密码输入方式,例如我同步2.bat的方式:
@echo off
d:
cd D:\Program Files (x86)\cwRsync\bin

rsync.exe -avzP --progress test_rsync@192.168.1.210::testwin --port=8733 /cygdrive/d/rsyncclient < D:/rsyncclient/rsync.password >> D:/rsyncclient/syslog.log

pause
  • 鼠标右键管理员方式执行同步.bat执行一会后命令框自己关闭
    以管理员方式打开命令提示符,进入到同步.bat所在目录,执行同步.bat,同步任务一直正常执行。

说明

  • 服务端
    常用参数说明:
use chroot = false #不使用chroot
strict modes = false #是否工作在严格模式下
hosts allow = * #所有主机均可访问
log file = rsyncd.log #日志文件
uid = 0 #不限定用户
gid = 0 #不限定用户组
port = 8733 #端口

[testwin] #这里是认证的模块名
path = /cygdrive/d/rsyncserver #同步目录,和linux不同的是windows的备份目录前面都要加/cygdrive
ignore errors #可以忽略一些无关的IO错误,默认true
read only = false #是否只读
transfer logging = yes #是否记录日志
auth users = test_rsync #认证的用户名
secrets file = etc/rsync.password #密码文件存放地址

全部参数:

1、基本模块参数
path       指定当前模块的同步路径,该参数是必须指定的
comment   给模块指定一个描述
 
2、模块控制参数
use chroot           在服务运行时要不要把他锁定在家目录,默认为 true
uid和gid            指定rsync运行用户和用户组,默认nobody
use chroot           是否让进程离开工作目录
max connections      最大并发连接数,0为不限制
lock file             指定支持 max connections的锁文件。默认/var/run/rsyncd.lock
list                 指定列出模块列表时,该模块是否被列出。默认为 true
read only          只读选择,默认true
write only         只写选择,不让客户端从服务器上下载文件。默认false
ignore errors     忽略IO错误,默认true
ignore nonreadable 指定 rysnc 服务器完全忽略那些用户没有访问权限的文件。
dont compress      用来指定那些在传输之前不进行压缩处理的文件。
 
3、模块文件筛选参数
exclude     由空格隔开的多个文件或目录(相对路径),并将其添加到 exclude 列表中。
exclude from 指定包含 exclude 规则定义的文件名,服务器从中读取 exclude 列表定义
include  指定多个由空格隔开文件或目录(相对路径),并将其添加到 include 列表中。
include from  指定一个包含 include 规则定义的文件名,服务器从 中读取 include 列表定义
 
4、模块用户认证参数
auth users  执行数据同步的用户名,可以设置多个,用英文状态下逗号隔开,默认为匿名方式
secrets file  指定一个 rsync 认证口令文件。只有在 auth users 被定义时,该文件才起作用。文件权限必须是 600
strict modes  表示是否工作在严格模式下,严格检查文件权限等相关信息,默认为true
 
5、模块访问控制参数
hosts allow  指定哪些主机客户允许连接该模块。默认值为 *
hosts deny  指定哪些主机客户不允许连接该模块
说明:
 a、二者都不出现时,默认为允许访问
 b、只出现hosts allow,定义白名单,但没有被匹配到的主机由默认规则处理,即为允许
 c、只出现hosts deny,定义黑名单,出现在名单中的都被拒绝
 d、二者同时出现,先检查hosts allow,如果匹配就allow,否则检查hosts deny,如果匹配则拒绝,如是二者都不匹配,则由默认规则处理,即为允许
 
6、模块日志参数
transfer logging 使 rsync 服务器将传输操作记录到传输日志文件。默认值为false
log format 指定传输日志文件的字段。默认为:”%o %h [%a] %m (%u) %f %l”
设置了”log file”参数时,在日志每行的开始会添加”%t [%p]“;

可以使用的日志格式定义符如下所示:
%o 操作类型:”send” 或 “recv”
%h 远程主机名
%a 远程IP地址
%m 模块名
%u 证的用户名(匿名时是 null)
%f 文件名
%l 文件长度字符数
%p 该次 rsync 会话的 PID
%P 模块路径
%t 当前时间
%b 实际传输的字节数
%c 当发送文件时,记录该文件的校验码
  • 客户端
-v, --verbose 详细模式输出
-q, --quiet 精简输出模式
-c, --checksum 打开校验开关,强制对文件传输进行校验
-a, --archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD
-r, --recursive 对子目录以递归模式处理
-R, --relative 使用相对路径信息
-b, --backup 创建备份,也就是对于目的已经存在有同样的文件名时,将老的文件重新命名为~filename。可以使用--suffix选项来指定不同的备份文件前缀。
--backup-dir 将备份文件(如~filename)存放在在目录下。
-suffix=SUFFIX 定义备份文件前缀
-u, --update 仅仅进行更新,也就是跳过所有已经存在于DST,并且文件时间晚于要备份的文件。(不覆盖更新的文件)
-l, --links 保留软链结
-L, --copy-links 想对待常规文件一样处理软链结
--copy-unsafe-links 仅仅拷贝指向SRC路径目录树以外的链结
--safe-links 忽略指向SRC路径目录树以外的链结
-H, --hard-links 保留硬链结
-p, --perms 保持文件权限
-o, --owner 保持文件属主信息
-g, --group 保持文件属组信息
-D, --devices 保持设备文件信息
-t, --times 保持文件时间信息
-S, --sparse 对稀疏文件进行特殊处理以节省DST的空间
-n, --dry-run现实哪些文件将被传输
-W, --whole-file 拷贝文件,不进行增量检测
-x, --one-file-system 不要跨越文件系统边界
-B, --block-size=SIZE 检验算法使用的块尺寸,默认是700字节
-e, --rsh=COMMAND 指定使用rsh、ssh方式进行数据同步
--rsync-path=PATH 指定远程服务器上的rsync命令所在路径信息
-C, --cvs-exclude 使用和CVS一样的方法自动忽略文件,用来排除那些不希望传输的文件
--existing 仅仅更新那些已经存在于DST的文件,而不备份那些新创建的文件
--delete 删除那些DST中SRC没有的文件
--delete-excluded 同样删除接收端那些被该选项指定排除的文件
--delete-after 传输结束以后再删除
--ignore-errors 及时出现IO错误也进行删除
--max-delete=NUM 最多删除NUM个文件
--partial 保留那些因故没有完全传输的文件,以是加快随后的再次传输
--force 强制删除目录,即使不为空
--numeric-ids 不将数字的用户和组ID匹配为用户名和组名
--timeout=TIME IP超时时间,单位为秒
-I, --ignore-times 不跳过那些有同样的时间和长度的文件
--size-only 当决定是否要备份文件时,仅仅察看文件大小而不考虑文件时间
--modify-window=NUM 决定文件是否时间相同时使用的时间戳窗口,默认为0
-T --temp-dir=DIR 在DIR中创建临时文件
--compare-dest=DIR 同样比较DIR中的文件来决定是否需要备份
-P 等同于 --partial
--progress 显示备份过程
-z, --compress 对备份的文件在传输时进行压缩处理
--exclude=PATTERN 指定排除不需要传输的文件模式
--include=PATTERN 指定不排除而需要传输的文件模式
--exclude-from=FILE 排除FILE中指定模式的文件
--include-from=FILE 不排除FILE指定模式匹配的文件
--version 打印版本信息
--address 绑定到特定的地址
--config=FILE 指定其他的配置文件,不使用默认的rsyncd.conf文件
--port=PORT 指定其他的rsync服务端口
--blocking-io 对远程shell使用阻塞IO
-stats 给出某些文件的传输状态
--progress 在传输时现实传输过程
--log-format=formAT 指定日志文件格式
--password-file=FILE 从FILE中得到密码
--bwlimit=KBPS 限制I/O带宽,KBytes per second
-h, --help 显示帮助信息

欢迎来访

  • 有问题欢迎留言或加交流qq:825121848
  • 转载请注明出处
  • 请小编喝茶~
Last Updated: 4/16/2022, 11:05:56 AM