Rsync+sersync实现数据实时同步-190315

* 不更改用户、属组,对某个目录添加单独一个用户的权限

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                 ##客户端ip与rsync模块名称

 26             

 27             

 28         

 29         

 30             

 31               #rsync服务端密码认证文件路径(该文件只包含指定users用户的密码即可)

 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=”密码认证文件的路径是否有错

你可能感兴趣的:(Rsync+sersync实现数据实时同步-190315)