* 不更改用户、属组,对某个目录添加单独一个用户的权限
setfacl -R -m user:用户名:权限(r、w、x) 目录路径
准备环境:rsync服务端(提供同步源文件的服务器192.168.2.100)
rsync客户端(将服务端的文件同步至本服务器192.168.2.102)
一、系统用户备份数据
1.分别在rsync的客户端与服务端安装xinetd与rsync服务
yum install -y xinetd rsync
2.关闭防火墙与selinux
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
firewall-cmd --state #查看默认防火墙状态(关闭后显示notrunning,开启后显示running)
setenforce 0 #临时关闭selinux
vim /etc/selinux/config修改SELINUX的值为disabled,reboot重启生效 #永久关闭selinux
getenforce #查看selinux状态
#将rsync服务端的/var/www/html/ 目录下文件同步至rsync客户端的/web-back目录下
4.在rsync服务端与rsync客户端分别建立系统用户进行测试
useradd rsync && echo "123456" | passwd --stdin rsync
5.赋予/var/www/html/目录的读、写、执行权限给raync测试用户:rsync #即对目录赋予ACL权限
setfacl -R -m user:rsync:rwx /var/www/html
setfacl -R -m default:rsync:rwx /var/www/html/
getfacl /var/www/html #查看权限是否赋予成功
6.在rsync服务端(192.168.2.100)创建测试数据
cp -r /boot/* /var/www/html/
7.修改rsync客户端(192.168.2.102)对应的同步目录权限
chown rsync:rsync /web-back
8.启动rsync服务(服务端与客户端均要启动rsync服务)
rsync --daemon
netstat -antup | grep 873 #查看rsync服务的监听端口是否开启
9.开始进行数据同步操作
rsync -avz /var/www/html/ [email protected]:/web-back #在rsync服务端(192.168.2.100)执行
10. 查看rsync客户端数据是否已经同步
ll /web-back #对应同步目录存在数据-同步成功;对应目录不存在数据,同步失败
二、非系统用户备份数据
1.在rsync服务端启动xinetd、rsync服务即可
systemctl start xinetd
rsync --daemon
2.在rsync客户端端编辑rsync配置文件
vim /etc/rsyncd.conf添加以下内容保存退出
uid = root #运行进程的身份
gid = root #运行进程的组
use chroot = yes #是否锁定家目录
max connections = 100 #最大连接数
timeout = 600 #超时时间
log file = /var/log/rsyncd.log #日志文件
ignore errors #忽略错误
read only = false #设置服务端文件读写权限
list = false #不显示服务端资源列表
hosts allow = 192.168.2.0/24 #*代表所有,允许哪些网段连接。即网络限制
hosts deny = 0.0.0.0/32
auth users = lzhrsync #指定用户备份的用户名
secrets file = /etc/rsync.password #指定用户的密码文件的路径
[www] #模块名
comment = www #连接的模块
path = /web-bak #客户端的监听目录
3.在rsync客户端创建密码文件
vim /etc/rsyncd.password添加
用户名:密码
lzhrsync:123456
chmod 600 /etc/rsyncd.password
4.开始以非系统用户进行同步数据
rsync -avz /var/www/html/ [email protected]::www #在rsync服务端执行,www是对应的模块名字
输入lzhrsync用户密码,开始数据同步
或者在rsync服务端创建密码认证文件
echo "123456" >> /etc/rsyncd.pass
chmod 600 /etc/rsyncd.pass
rsync -avz /var/www/html/ [email protected]::www --password-file=/etc/rsyncd.pass
5.在rsync客户端查看数据是否同步成功
ll /web-back #对应同步目录存在数据-同步成功;对应目录不存在数据,同步失败
三、sersync+rsync自动同步
1.将sersync包上传至rsync服务端(192.168.2.100)
2.解压sersync包
mkdir -p /usr/local/sersync
tar -zxvf sersync包名 -C /usr/local/sersync
3.修改sersync的配置文件
vim /usr/local/sersync/confxml.xml # 修改24--28行,修改31--34行,认证部分【rsync密码认证】
24
25
26
27
28
29
30
31
32
33
34
4.启动sersync
/usr/local/sersync/sersync2 -d -r -o /usr/local/sersync/confxml.xml
5.在监听目录/var/www/html/下创建新文件进行测试
touch 11 22 33 44
6.在rsync客户端查看/web-back /目录下是否存在 11 22 33 44 文件。存在则数据自动同步成功;否则,数据自动同步失败
注:搭建sersync+rsync后发现服务端与客户端之间数据无法自动同步
解决:1.查看服务端是否创建密码认证文件
2.查看服务端的sersync的配置文件中的31行“passwordfile=”密码认证文件的路径是否有错