sersync+rsync实现实时备份

需求:
1、源服务器上(nfs01服务器)要备份的是/data/目录包
2、备份服务器(backup服务器)上备份的路径/backup ,当然备份的服务器有可能不止一台

源服务器:nfs01- 172.16.1.31	(sersync server)
备份服务器:backup-172.16.1.41 (rsync server)

rsync+sersync实时备份

sersync可以记录被监听目录中发生变化的(增,删,改)具体某个文件或目录的名字

rsync在同步时,只同步发生变化的文件或目录(每次发生变化的数据相对整个同步目录数据来说很小,rsync在遍历查找对比文件时,速度很快),因此效率很高

同步过程:

1.在源数据服务器上开启sersync服务,sersync负责监控配置路径中的文件系统事件变化;

2.调用rsync命令把更新的文件同步到目标服务器;

3.需要在源数据服务器配置sersync,在同步目标服务器配置rsync server

同步原理:

1.用户实时的往sersync服务器上写入更新文件数据;

2.此时需要在源数据服务器上配置sersync服务;

3.在另一台服务器开启rsync守护进程服务,以同步拉取来自sersync服务器上的数据;

通过rsync的守护进程服务后可以发现,实际上sersync就是监控本地的数据写入或更新事件;然后,在调用rsync客户端的命令,将写入或更新事件对应的文件通过rsync推送到目标服务器

sersync实时备份部署

一、备份服务器部署rsync服务

1.启动rsync服务
[root@backup ~]# systemctl start rsyncd
2.rsync服务加入开机自启动
[root@backup ~]# systemctl enable rsyncd
3.创建rsync用户
[root@backup ~]# useradd -s /sbin/nologin -M rsync
4.创建认证文件
[root@backup ~]# echo rsync_backup:123456 >/etc/rsync.password
5.修改认证密码文件
[root@backup ~]# chmod 600 /etc/rsync.password
6.创建一个backup目录并授予权限
[root@backup ~]# mkdir /backup
7.修改目录所属组,所属组
[root@backup ~]# chown rsync.rsync /backup/
8.编写rsync服务配置文件

[root@backup ~]# vim /etc/rsyncd.conf 		
#rsync_config
#created by lpc at 2019
##rsyncd.conf start## 
uid = rsync
gid = rsync
port = 873
fake super = yes
use chroot = no
max connections = 200
timeout = 300
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
ignore errors
read only= false
list = false
hosts allow = 172.16.1.0/24
hosts deny = 0.0.0.0/32
auth users = rsync_backup
secrets file = /etc/rsync.password
[backup]
cmment = "backup dir by lpc"
path =/backup
测试rsync服务是否部署成功

本地测试

[root@backup ~]# rsync -avz /etc/hostname rsync_backup@172.16.1.41::backup
Password: 
sending incremental file list
hostname

sent 102 bytes  received 43 bytes  58.00 bytes/sec
total size is 7  speedup is 0.05
[root@backup ~]# ll /backup/
total 4
-rw-r--r-- 1 rsync rsync 7 May 24 20:49 hostname

nfs01服务器上测试

[root@nfs01 ~]# rsync -avz /etc/hosts rsync_backup@172.16.1.41::backup 
Password: 
sending incremental file list
hosts

sent 212 bytes  received 43 bytes  102.00 bytes/sec
total size is 311  speedup is 1.22

部署成功、可以在backup服务器上查看是否有传输成功

二、在源服务器(nfs01服务器)上部署

创建用户认证密码文件并且设置权限为600

[root@nfs01 ~]# chmod 600 /etc/rsync.password 
[root@nfs01 ~]# echo 123456 >/etc/rsync.password

创建/data目录

[root@nfs01 ~]# mkdir /data
部署sersync服务

1.上传sersync包

将sersync包上传到服务器上
xshell可以支持直接将安装包拖拽到服务器上,也可以通过rz命令上传到服务器。
rz命令所属包:lrzsz

2.解压安装包

[root@nfs01 ~]# unzip sersync-master.zip 
[root@nfs01~]# cd sersync-master/
[root@nfs01~/sersync-master]# tar xf sersync2.5.4_64bit_binary_stable_final.tar.gz 
[root@nfs01~/sersync-master]# mv GNU-Linux-x86/ /usr/local/sersync   --->后面目录不要加/
[root@nfs01~/sersync-master]# tree /usr/local/sersync/
/usr/local/sersync/
├── confxml.xml
└── sersync2

0 directories, 2 files

将目录移动到固定目录并更改目录名、方便管理

3.将sersync2改名为sersync、并且创建软连接

[root@nfs01 ~]# mv /usr/local/sersync/sersync2 /usr/local/sersync/sersync
[root@nfs01 ~]# ln -s /usr/local/sersync/sersync /sbin/
[root@nfs01 ~]#  ll -d /sbin/sersync 
lrwxrwxrwx 1 root root 26 May 25 01:15 /sbin/sersync -> /usr/local/sersync/sersync

4.给文件执行权限

[root@nfs01 ~]# chmod +x /usr/local/sersync/sersync 

5.修改配置文件confxml.xml

vim /usr/local/sersync/confxml.xml
 23     <sersync>
 24         <localpath watch="/data">	  --->本地要监控的目录
 25             <remote ip="172.16.1.41" name="backup"/>	  --->填写rsync服务器的IP地址和模块名
 26             <!--<remote ip="192.168.8.39" name="tongbu"/>-->
 27             <!--<remote ip="192.168.8.40" name="tongbu"/>-->
 28         </localpath>
 29         <rsync>
 30             <commonParams params="-az"/>    -->rsyn参数设置
 31             <auth start="true" users="rsync_backup" passwordfile="/etc/rsync.password"/>   
 	    ####  将false改为true       --->认证用户                --->认证用户密码文件
 32             <userDefinedPort start="false" port="874"/><!-- port=874 -->
 33             <timeout start="false" time="100"/><!-- timeout=100 -->
 34             <ssh start="false"/>
 35         </rsync>

修改24、25、30、31行内容

6.启动服务

[root@nfs01 /data]# sersync -dro /usr/local/sersync/confxml.xml 

最后跟的是配置文件的绝对路径

7.设置为开机自启动

[root@nfs01 ~]# vim /etc/rc.local 
sersync -dro /usr/local/sersync/confxml.xml 

将文件写入/etc/rc.local文件最后一行
/etc/rc.local、第一次使用需要给它执行权限:chmod +x /etc/rc.local

三、测试sersync是否部署成功

nfs服务器创建文件

[root@nfs01 ~]# touch /data/lang{1..9}.txt
[root@nfs01 ~]# ll /data/
total 0
-rw-r--r-- 1 root root 0 May 25 02:13 lang1.txt
-rw-r--r-- 1 root root 0 May 25 02:13 lang2.txt
-rw-r--r-- 1 root root 0 May 25 02:13 lang3.txt
-rw-r--r-- 1 root root 0 May 25 02:13 lang4.txt
-rw-r--r-- 1 root root 0 May 25 02:13 lang5.txt
-rw-r--r-- 1 root root 0 May 25 02:13 lang6.txt
-rw-r--r-- 1 root root 0 May 25 02:13 lang7.txt
-rw-r--r-- 1 root root 0 May 25 02:13 lang8.txt
-rw-r--r-- 1 root root 0 May 25 02:13 lang9.txt

backup服务器查看结果

[root@backup ~]# ll /backup/
total 0
-rw-r--r-- 1 rsync rsync 0 May 25 02:13 lang1.txt
-rw-r--r-- 1 rsync rsync 0 May 25 02:13 lang2.txt
-rw-r--r-- 1 rsync rsync 0 May 25 02:13 lang3.txt
-rw-r--r-- 1 rsync rsync 0 May 25 02:13 lang4.txt
-rw-r--r-- 1 rsync rsync 0 May 25 02:13 lang5.txt
-rw-r--r-- 1 rsync rsync 0 May 25 02:13 lang6.txt
-rw-r--r-- 1 rsync rsync 0 May 25 02:13 lang7.txt
-rw-r--r-- 1 rsync rsync 0 May 25 02:13 lang8.txt
-rw-r--r-- 1 rsync rsync 0 May 25 02:13 lang9.txt

四、其他相关

sersync 参数说明
[root@nfs01 ~]# sersync -h
set the system param
execute:echo 50000000 > /proc/sys/fs/inotify/max_user_watches
execute:echo 327679 > /proc/sys/fs/inotify/max_queued_events
parse the command param
_______________________________________________________
参数-d:启用守护进程模式
参数-r:在监控前,将监控目录与远程主机用rsync命令推送一遍
c参数-n: 指定开启守护线程的数量,默认为10个
参数-o:指定配置文件,默认使用confxml.xml文件
参数-m:单独启用其他模块,使用 -m refreshCDN 开启刷新CDN模块
参数-m:单独启用其他模块,使用 -m socket 开启socket模块
参数-m:单独启用其他模块,使用 -m http 开启http模块
不加-m参数,则默认执行同步程序
________________________________________________________________
confxml.xml配置文件说明
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值