windows 下的 rsync 文件同步。

Rsync下载地址;

链接:https://pan.baidu.com/s/1nL0Ee_u76ytWKUFMeiKDIw
提取码:52in

一、Server 端

172.16.2.36  

1、安装  cwRsyncServer_4.0.5_Installer.exe

依据提示下一步下一步安装即可。安装成功之后 在服务里面找到  RsyncServer 服务;

 

点开属性  登陆关系配置程 本地账户;(或者可以在安装时候 输入本机系统的账户密码)

2、配置文件 rsync.conf;

默认安装配置在  C:\Program Files (x86)\ICW

配置参考:

复制代码
use chroot = false
strict modes = false

# read only = yes

list = no
hosts allow = 172.16.2.37
# 指定地址才能进行同步 多个IP 或者网段 用空格隔开; max connections = 3
# 最大链接 lock file = rsyncd.lock motd file = rsyncd.motd log file = /cygdrive/d/testwork/rsyncd.log
# 日志目录 transfer logging = yes uid = 0 gid = 0 auth users = user1
# 认证用户 secrets file = rsyncd.password
# 认证密码 rsyncd.passwd 这个是自己创建。
# 创建位置 没有指定路径、默认在C:\Program Files (x86)\ICW\ 安装目录下。 [testwork] path = /cygdrive/d/testwork
# 需要同步的目录 d 盘 下的 testwork 目录
# /cydrive/d/ 配置格式 d 盘符。 其他 F 盘符 就是换成 f read only = false transfer logging = yes
复制代码

3、创建配置文件中 认证密码 rsyncd.password 文件:

user1:passwd

4、注 服务端 172.16.2.36  需要开放 873 端口。

二、Rsync 客户端同步:

172.16.2.37 

1、安装 cwRsync_4.0.5_Installer.exe

默认也是 C:\Program Files (x86)\cwRsync

因为前面配置有认证;需要配置一个 passwd 验证;

2、rsync 同步

复制代码
同步示例:
C:\Program Files (x86)\cwRsync\bin>rsync -vzra --progress --bwlimit=200 --iconv=GB18030 --exclude="test*" --files-from="include.txt" user1@172.16.2.36::testwork < passwd.txt /cygdrive/d/testfile
# --files-from  指定同步的路径  放在 include.txt 里说明
# passwd.txt 认证密码
# /cygdrive/d/testfile 同步到客户端本机的路径
# --exclude "*test" # 排除test结尾文件
# --exclude "file/file2" # 排除 file2 文件
# --exclude-from=exclude.txt 指定排除的文件 放在 exclude.txt 里说明

# txt 说明不指定路径,默认需要放置在 Rsync 默认安装的 C:\Program Files (x86)\cwRsync\bin 目录下。
复制代码

rsync 命令参数:

复制代码
-v, --verbose    详细模式输出,详细显示数据传输备份情况
-z, --compress    传输时进行压缩以提高传输效率,--compress-level=NUM可按级别压缩。局域网可以不用压缩
-a, --archive    归档模式,表示以递归方式传输文件,并保持所有文件属性,等价于-rtopgDl
-r, --recursive(属于-a参数)    对子目录以递归模式,即目录下的所有目录都同样传输
-t, --times(属于-a参数)    保持文件时间属性信息
-o, --owner(属于-a参数)    保持文件属主信息
-p, --perms(属于-a参数)    保持文件权限
-g, --group(属于-a参数)    保持文件属组信息
-D, --devices (属于-a参数)    保持设备文件信息
-l, --links(属于-a参数)    保留软链接(小写字母l)
-P, --progress    显示同步的过程及传输时的进度等信息
-e, --rsh=COMMAND    使用的信道协议(remote shell),指定替代rsh的shell程序。例如:ssh
--exclude=PATTERN    指定排除不需要传输的文件信息
--exclude-from=file    文件名所在的目录文件,即可以实现排除多个文件
--bwlimit=RATE    实现数据传输过程限速传输,限制速率单位为kbytes
复制代码

3、创建 密码验证 passwd.txt

passwd
# 只输入一行密码即可。

4、创建 指定同步目录文件 include.txt

# 分行写每一个目录 只同步指定的目录
a
c/a
d/a

5、创建 排除目录文件 exclude.txt

复制代码
# 分行写每一个目录  排除以后目录同步
a/log
b/*.log
c
.[a-z]*    
# 不备份以点开头的隐藏文件, 这个路径必须是一个相对路径,不能是绝对路径
复制代码

在windows 下 设置执行 批处理定时任务:

复制代码
C:\
cd "C:\Program Files (x86)\cwRsync\bin>"
rsync -vzra --progress user1@172.16.2.36::testwork < passwd.txt /cygdrive/d/z >> d:\rsyncd.log

# 切换 安装路径进行执行 cwRsync 命令
# 执行记录日志到 rsync.log
复制代码

三、linux 系统下同步windows  中文乱码

需要设置  密码文件  权限 当前用户的只读

chmod 600 /etc/rsyncd.password

1、如果windows系统同步linux系统时,rsyncd.conf 配置文件添加一行:

charset = GBK

在 windows下同步命令需要添加一个参数:

--iconv=GBK,UTF-8
# --iconv=GBK,UTF-8  
# GBK指windows 本地的编码,UTF-8指服务器端linux的编码格式

2、要是 linux系统同步windows系统 rsyncd.conf 配置文件添加:

charset = UTF-8

所以在 linux下同步命令需要添加一个参数:

--iconv=UTF-8,GBK 
# --iconv=UTF-8,GBK 
# UTF-8指linux本地的编码,GBK指服务器端即windows编码格式。
posted @ 2021-07-26 16:29  飞雪飘鸿  阅读(1620)  评论(0编辑  收藏  举报
https://damo.alibaba.com/ https://tianchi.aliyun.com/course?spm=5176.21206777.J_3941670930.5.87dc17c9BZNvLL