综合架构-实时同步服务

目录

 

一、实时同步服务介绍

1)为什么要使用实时同步服务?

2)实时同步服务工作原理

二、实时同步服务部署

1)部署rsync守护进程

01.服务端--backup备份服务器

02.客户端--nfs存储服务器

2)部署inotify监控服务 --nfs01客户端

3)部署sersync同步服务--nfs01客户端

三、实时同步服务总结

   1) 实现实时同步的原理

      1. 监控目录数据变化  --- inotify       2. 将数据进行传输    --- rsync      3.将监控和传输进行整合  --- sersync

    2) 实现实时同步部署方法

       1. 部署rsync守护进程        2. 部署inotify软件       3. 部署sersync软件


一、实时同步服务介绍

1)为什么要使用实时同步服务?

a 因为定时任务有缺陷,一分钟以内的数据无法进行同步,容易造成数据丢失;

b 用户上传数据信息需要实时备份保存到备份服务器防止数据丢失。

c 实时监控变化,当出现增 删 改 时,触发一个动作事件,就会推送数据到远程备份服务器。

2)实时同步服务工作原理

 

 类型IP地址安装服务服务介绍
服务端backup172.16.1.41rsync守护进程rsync实现远程数据传输
客户端nfs01172.16.1.31

rsync守护进程

inotify服务

sersync服务

rsync实现远程数据传输

inotify实现目录中数据变化监控          

sersync实现实时同步

二、实时同步服务部署

1)部署rsync守护进程

01.服务端--backup备份服务器

第一步:下载安装软件

[root@backup ~]# rpm -qa|grep rsync
[root@backup ~]# yum install -y rsync

第二步:编写配置文件

[root@backup ~]# man rsyncd.conf
[root@backup ~]# vim /etc/rsyncd.conf 
##created by YB at 2020
###rsyncd.conf start##
    
uid = rsync       --- 指定管理备份目录的用户  
gid = rsync       --- 指定管理备份目录的用户组
port = 873        --- 定义rsync备份服务的网络端口号
fake super = yes  --- 将rsync虚拟用户伪装成为一个超级管理员用户 
use chroot = no   --- 和安全相关的配置
max connections = 200  --- 最大连接数  同时只能有200个客户端连接到备份服务器
timeout = 300          --- 超时时间(单位秒)
pid file = /var/run/rsyncd.pid   --- 记录进程号码信息 1.让程序快速停止进程 2. 判断一个服务是否正在运行
lock file = /var/run/rsync.lock  --- 锁文件
log file = /var/log/rsyncd.log   --- rsync服务的日志文件 用于排错分析问题
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]                         --- 模块信息
comment = "backup dir by oldboy"  
path = /backup                   --- 模块中配置参数 指定备份目录

第三步:创建rsync的虚拟用户

[root@backup ~]# useradd rsync -M -s /sbin/nologin

第四步:创建备份服务认证密码文件

[root@backup ~]# echo "rsync_backup:123456" >/etc/rsync.password
[root@backup ~]# chmod 600 /etc/rsync.password

第五步:创建备份目录并修改属主属组信息

[root@backup ~]# mkdir /backup
[root@backup ~]# chown -R rsync.rsync /backup/

第六步:启动备份服务

[root@backup ~]# systemctl start rsyncd
[root@backup ~]# systemctl enable rsyncd
[root@backup ~]# systemctl status rsyncd

02.客户端--nfs存储服务器

第一步:创建认证密码文件

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

第二步:进行面交互数据传输测试

[root@nfs01 ~]# rsync -avz /etc/hosts rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password

2)部署inotify监控服务 --nfs01客户端

第一步:安装软件

[root@nfs01 ~]# yum install -y inotify-tools

第二步:熟悉命令使用

/usr/bin/inotifywait    --- 监控目录数据信息变化
/usr/bin/inotifywatch   --- 对监控的变化信息进行统计

 

inotifywait命令使用方法:

inotifywait   [参数]   监控的目录

-mmonitor实现一直监控目录的数据变化
-rrecursive进行递归监控
-qquiet尽量减少信息的输出
--format <fmt> 指定输出信息的格式
--timefmt 指定输出的时间信息格式 
-eevent指定监控的事件信息

 

 

 

 

 

 

 

inotify监控命令格式:
inotifywait -mrq --timefmt "%F" --format "%T %w %f 事件信息:%e" /data -e CREATE
create创建、delete删除、moved_to移入、close_write修改


       
企业应用:防止系统重要文件被破坏
需要用到inotify进行实时一直监控 /etc passwd  /var/spool/cron/root

3)部署sersync同步服务--nfs01客户端

第一步:下载sersync软件上传到nfs客户端

地址:https://github.com/wsgzao/sersync

上传linux服务器  
      

[root@nfs01 ~]# rz -y  --- 选择需要上传的数据信息

PS:软件尽量都统一保存在/server/tools目录中

第二步:解压软件压缩包,将解压的数据进行保存

[root@nfs01 tools]# unzip sersync_installdir_64bit.zip
[root@nfs01 tools]# tree sersync_installdir_64bit
sersync_installdir_64bit
   └── sersync
       ├── bin               --- sersync软件命令目录
       │?? └── sersync
       ├── conf              --- sersync软件配置目录
       │?? └── confxml.xml
       └── logs              --- sersync软件日志目录
[root@nfs01 tools]# mv sersync_installdir_64bit/sersync/  /usr/local/

第三步:编写配置文件

[root@nfs01 /usr/local/sersync]# vim conf/confxml.xml
 24         <localpath watch="/data">
 25             <remote ip="172.16.1.41" name="backup"/>
 30             <commonParams params="-az"/>
 31             <auth start="true" users="rsync_backup"passwordfile="/etc/rsync.password"/>
 32             <userDefinedPort start="true" port="874"/><!-- port=874 -->

参数-d:  启用守护进程模式
参数-r:  在监控前,将监控目录与远程主机用rsync命令推送一遍进行同步测试
参数-o:  指定配置文件,默认使用confxml.xml文件
                -o /usr/local/sersync/conf/confxml.xml
                -o /usr/local/sersync/conf/confxml02.xml

 

第四步:启动sersync服务

[root@nfs01 bin]# export PATH="$PATH:/usr/local/sersync/bin"
[root@nfs01 bin]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/sersync/bin
[root@nfs01 ~]# sersync -dro  /usr/local/sersync/conf/confxml.xml   启动实时同步服务       
[root@nfs01 ~]# yum install -y psmisc       
[root@nfs01 ~]# killall sersync                                     停止实时同步服务       
/etc/rc.local <-- sersync -dro  /usr/local/sersync/conf/confxml.xml   开机自动启动  

第五步:实现开机自启

[root@nfs01 ~]# vim /etc/profile
export PATH='/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/sersync/bin'
[root@nfs01 ~]# vim /etc/rc.local 
/usr/local/sersync/bin/sersync -dro  /usr/local/sersync/conf/confxml.xml
[root@nfs01 ~]# chmod a+x /etc/rc.d/rc.local

三、实时同步服务总结

   1) 实现实时同步的原理

      1. 监控目录数据变化  --- inotify 
      2. 将数据进行传输    --- rsync
      3.将监控和传输进行整合  --- sersync

    2) 实现实时同步部署方法

       1. 部署rsync守护进程 
       2. 部署inotify软件
       3. 部署sersync软件

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值