安装
yum install -y rsync
yum install -y xinted // 这个不知道是用来干嘛的
配置
配置有分很多种,首先找到rsyncd.conf路径,一般在etc文件夹内。不知道就find一下
find / -name 'rsyncd.conf
vim rsyncd.conf
- 全局配置参数
- motd file
用于向连接端展示消息用,消息可以自己在指定文件中设置,默认空,进程命令:
--dparam=motdfile=motd file
- pid file
用于守护进程写入进程id用,必填项,进程命令:
--dparam-pidfile=pid file
- port
指定rsync运行的端口号,默认873,命令:
--port=873
- address
用于设置rsync监听的ip地址,命令:
--address=IP
- socket options
用于设置socket套接字配置,具体查看socket配置项配置,命令:
--sockopts=opts
- 模块配置参数(常用)
- comment
连接端接入该模块时展示于模块名称旁,默认无 - path
指定该模块允许访问的文件路径 - use chroot
当该参数为true时,rsync默认会吧path作为该模块访问的根路径,可选值:true/false - daemon chroot
当改参数为true时,rsync会将守护进程的chroot路径指定为该模块下的path,默认不设置,可选值:true/false - proxy protocol
当开启该参数时,会拒绝没有携带代理报头的连接端,意思是如果是true的话,需要转发代理ip待rsync中,否则连接端就会直接请求到rsync中,默认不开启,可以使用开启密码访问的方式来提高安全性。可选值:true/false - max connections
指定该模块最大并发连接数,默认无限制(-1/0) - log file
用于指定写入日志的文件路径,必填项 - lock file
该文件用于限制最大并发数,必填项 - read only
开启/关闭连接端读权限 - write only
开启/关闭连接端写权限 - list
文档看的不大懂 - uid
指定rsync运行进程时哪个用户/文件是可用的,通常与gid配合使用 - gid
指定一个组别 - auth users
指定该模块可访问的用户,设置后连接端访问该模块时,需要输入正确密码才能访问,多个可用空格或者逗号隔开,示例:
bob,jane // 指定两个用户可连接
bob:deny,jane // bob不可连接
bob, @guest jane:deny mark // guest组下的jane不可连接
bob:r,jane:w // bob只读,jane只写
- secrets file
指定用户账号密码,当auth users有设置的话,连接端连接时会去该文件中比对连接端的账号密码是否正确,格式:
username:password
- hosts allow
设置允许访问的ip地址,默认不设置,格式:
hosts allow = IP1[, IP2| iIP2...]
- hosts deny
设置不允许访问的ip地址,默认不设置 - ignore errors
是否忽略文件传输中的错误,可选值:yes/no - timeout
rsync取消连接端建立连接的超时时间
使用
- 本地文件同步
rsync -r fileA fileB 将fileA文件夹及其子文件同步到fileB的fileA文件夹中
rsync -r fileA/ fileB 将fileA文件夹及其子文件同步到FileB中
-r 递归文件夹
rsync -a fileA fileB 以归档模式将fileA同步到fileB的fileA文件夹中
-a 归档模式,包括递归、软连接、权限、时间修改信息、分组修改信息、所有者,保存原信息
rsync -v fileA fileB 展示fileA同步fileB的所有状态信息
-v 展开显示详细信息
rsync -z fileA fileB 将fileA同步到fileB,并且在传输过程中压缩文件数据
rsync --process fileA fileB 传输过程中显示传输进度
rsync --exclude='*.txt' fileA fileB 传输时排除.txt结尾的文件
多个排除可以这么写
1. --exclude=suffix1 --exclude=suffix2
2. --exclude='{suffix1,suffix2}'
3. --exclude-from=exclude file
rsync --include='*.txt' fileA fileB 在传输时还需将.txt结尾的文件也同步过去
- 远程拉取
需要两端都要安装rsync
1. 远端拉取
rsync -av [auth users]/[root]@HOST::[module_name] file
[auth users] 发送端rsyncd.conf中设置的auth users配置client用户名
->密码为secrets file中配置的对应账号中的密码
->如果用密码验证的话,会提示输入密码,密码正确就会传输
若只开放拉取,rsyncd.conf中[module_name]下需配置read only = true
2. 远端推送
rsync -av file [auth users]/[root]@HOST::[module_name]
操作同上
若只开放写入,rsyncd.conf中[module_name]下需配置write only = true
3. 指定ssh传输
rsync -av -e 'ssh -p [port]' file [auth users]/[ssh_name]@HOST::[module_name]
其他
参考文档