一、Rsync基于rsync-daemon认证的使用
与 ssh 认证不同,rsync 协议认证不需要依赖远程主机的 sshd 服务,但需要远程主机开启 rsyncd 服务,本地 rsyncd 服务可不必开启。另外,rsync 协议认证不是直接使用远程主机的真实系统账号,而是虚拟账号和虚拟密码,且可实现无需手动输入密码,同时 rsync 协议认证需要配置模块对远程同步的目录进行限制。对比 ssh 认证,rsync 协议认证安全性更高。

下面直接实践。(远程主机为服务端,本地主机为客户端)
守护进程方式同步数据
规划:
1、备份服务器作为rsync服务端(服务端来存储同步过来的数据,也就是目标服务器)
2、以rsync客户端作为参照物,将数据推到rsync服务器上(也就是源服务器)
二、配置rsync服务端(将服务端配置到 备份服务器上)
【注意!配置所有文件时最好手敲一遍,不然会报莫名其妙的错误!!不要直接粘贴!!!亲测有效!!!!】
环境要求:
(1)两台 centos7 机器
(2)网络配置参数
搭建步骤:
第一步: 检查软件是否存在;
rpm -qa |grep rsync
(这里我使用192.168.198.138作为源服务器,192.168.198.140作为目标服务器)


第二步: 进行软件服务配置
vim /etc/rsyncd.conf
# 以 rsync 用户启动进程
# 传输文件使用的用户和用户组,如果是从服务器=>客户端,要保证rsync用户对文件有读
# 取的权限;如果是从客户端=>服务端,要保证rsync对文件有写权限。
uid = rsync
gid = rsync
# 无需让rsync以root身份运行,允许接收文件的完整属性
fake super = yes
# 禁锢推送的数据至某个目录, 不允许跳出该目录
# 允许chroot,提升安全性,客户端连接模块,首先chroot到模块path参数指定的目录
# 下,chroot为yes时必须使用root权限,且不能备份path路径外的链接文件
use chroot = no
max connections = 200 # 最大连接数
timeout = 300 # 超时时间
pid file = /var/run/rsyncd.pid # pid文件路径
lock file = /var/run/rsync.lock # 锁文件路径
exclude = lost+found/ # 剔除某些文件或目录,不同步
transfer logging = yes # 记录传输文件日志
log file = /var/log/rsyncd.log # 指定日志文件
log format = %t %a %m %f %b # 日志文件格式
ignore errors # 忽略错误信息
read only = false # 对备份数据可读写
list = false # 不允许查看模块信息
hosts allow = 192.168.42.0/24 # 只允许192.168.42.0/24段ip连接
hosts deny = 0.0.0.0/32 # 不允许所有网段ip连接
auth users = rsync_backup # 定义虚拟用户,作为连接认证用户
secrets file = /etc/rsync.password # 定义rsync服务用户连接认证密码文件路径
dont compress = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2 # 设置不需要压缩的文件
#### 定义模块信息
[backup]
comment = "backup dir by nebula" # 模块注释信息
path = /backup # 定义接收备份数据目录

第三步:创建rsync用户
[root@backup ~]# id rsync
id: rsync: No such user
[root@backup ~]# useradd -s /sbin/nologin -M rsync
#(-s创建用户shell,/sbin/nologin表示不登录,—M rsync表示不创建用户rsync家目录)

第四步: 创建数据备份储存目录,目录修改属主
[root@backup ~]# mkdir /backup/
[root@backup ~]# chown -R rsync:rsync /backup/