实时同步服务知识梳理

01.为什么要使用实时同步服务

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

b-用户上传数据信息需要实时备份保存.

实时同步实现及工作原理.

01. 实时监控同步数据目录信息变化;

02. 监控目录发生变化进行数据推送.

实时同步监控服务器部署过程,(inotify服务); 实时同步备份服务器部署过程(rsync服务)

a.创建要存储数据的目录;

b.利用实时同步的软件监控我们进行备份的数据目录

c利用rsync服务进行数据推送传输备份(一般是监控存储服务器上的目录,向rsync备份服务器进行同步)

02实时同步软件部署

a.inotify+rsync 实现实时同步

b sersync+rsync 实现实时同步备份.

第一步骤:

安装部署 inotify yum -y install inotify-tools

[[email protected] data]# rpm -ql inotify-tools
/usr/bin/inotifywait
/usr/bin/inotifywatch
/usr/lib64/libinotifytools.so.0
/usr/lib64/libinotifytools.so.0.4.1
/usr/share/doc/inotify-tools-3.14
/usr/share/doc/inotify-tools-3.14/AUTHORS
/usr/share/doc/inotify-tools-3.14/COPYING
/usr/share/doc/inotify-tools-3.14/ChangeLog
/usr/share/doc/inotify-tools-3.14/NEWS
/usr/share/doc/inotify-tools-3.14/README
/usr/share/man/man1/inotifywait.1.gz
/usr/share/man/man1/inotifywatch.1.gz

inotifywait

第二步骤, 安装部署rsync服务,

a先部署服务端rsync 服务,

@1.检查rsync是否已经安装; rpm -qa |grep rsync

@2.编写rsync软件主配置文件.

@3.创建目录管理用户

@4.创建备份目录,并进行授权;

@5.创建认证文件,编写认证用户和密码信息;设置备份文件目录权限为600.

@6.启动守护进程模式, rsync --daemon

b.再部署客户端rsync服务, yum -y install rsync

@1.检查并安装rsync服务

@2.rsync 配置文件 需要设置配置的认证文件. /etc/rsync.password (认证文件只需要有认证的密码信息),设置文件权限为600 只运行root访问读写

@3.使用客户端进行数据同步测试.

rsync -avz /etc/sysconfig/network [email protected]::backup --password-file=/etc/rsync.password  (在客户端进行push 推送到备份服务器,然后再在服务端进行检查:ls -ll /backup/. 看是否推送成功.)

03.实时同步软件 inotify 软件 强大的,细颗粒度的,异步的文件系统事件监控机制.

inotify_init  inotify_add_watch inotify_rm_watch 

inotify 软件的命令参数:(inotifywait)

-m|--monitor  参数:  始终保持事件监听状态;

-d|--daemon   类似于-m ,只是将命令运行在后台, 定义程序日志使用 --syslog参数.

-r --recursive  递归监控目录数据信息变化;

-o|--outfile <file> 打印事件到文件中,相当于标准正确输出

-s|--syslog  标准日志输出

-q|--quiet   将无用的输出信息,不进行显示输出

--timefmt<fmt>   设定日期的格式;

--format     打印使用指定的输出类似格式字符串,即实际监控输出的内容.

-e <event>  指定监听指定的事件,如果省略,表示所有事件都进行监听.

man inotifywait 查看所有参数说明和所有可以监控的事件信息.

inotify events

IN_ACCESS

IN_ATTRIB

IN_CLOSE_WRITE

IN_CLOSE_NOWRITE

IN_CREATE

IN_DELETE

IN_MODIFY

IN_MOVE_SELF 

IN_MOVED_FROM  File moved out of watched directory (*)

IN_MOVED_TO   File moved into watched directory (*)

IN_MOVE

IN_OPEN  file was opend  (*)

①. max_user_watches    可以监控的最大文件数

②. max_user_instances   设置用户可以开启的服务进程数

③. max_queued_events   设置监控服务实例可以监控的事件个数

①. inotifywait  监控产生的变化文件信息

②. inotifywatch  统计变化的文件事件信息

inotify 实时同步服务脚本编写-Inotify

编写脚本如下实现NFS服务器和备份服务器之间实现实时同步:

#!/bin/bash
###########This scripts is wrote by tony-2018-12-07
Rsync_path_file=/etc/rsync.password
Ip="172.16.1.41"
Path=/data
Inotify_command=/usr/bin/inotifywait

$Inotify_command  -mrq --format %w%f -e create,delete,moved_to,close_write /data| whil
e read line
do
#rsync -avz $line [email protected]$Ip::backup  --password-file=$Rsync_path_file
rsync -avz --delete /data/ [email protected]$Ip::games --password-file=$Rsync_path_file

done

脚本原理: 先使用inotifywait监控需要同步的目录,这里是/data目录, 然后监控创建,删除,移动重命名,打开动作,然后检查到变化后使用rsync命令进行向备份服务器进行同步.rsync -avz --delete /data/ [email protected]$Ip::games --password-file=/etc/rsync.password

以上,实现了监控存储服务器的/data 目录的变化,并进行实时同步并备份到备份服务器的/bakcup(backup是模块名字))

方法二:使用sersync+rsync 实现高效的数据实时同步架构(进行目录的实时同步操作.)

sersync软件下载地址:https://github.com/wsgzao/sersync.

inotify和rsync的配置文件默认不用修改,需要修改sersync的配置文件.

23 <sersync>
24 <localpath watch="/data">
25 <remote ip="172.16.1.41" name="backup"/>
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="-artuz"/>
31 <auth start="true" users="rsync_backup" passwordfile="/etc/rsync.password"/>
32 <userDefinedPort start="false" port="874"/><!-- port=874 -->
33 <timeout start="false" time="100"/><!-- timeout=100 -->
34 <ssh start="false"/>
35 </rsync>

修改好配置文件定义好要监控的同步目录和监控的参数后就可以进行使用sersync进行同步了.

sersync -h 查看命令使用的常见参数.

参数-d:启用守护进程模式
参数-r:在监控前,将监控目录与远程主机用rsync命令推送一遍
c参数-n: 指定开启守护线程的数量,默认为10个
参数-o:指定配置文件,默认使用confxml.xml文件
参数-m:单独启用其他模块,使用 -m refreshCDN 开启刷新CDN模块
参数-m:单独启用其他模块,使用 -m socket 开启socket模块
参数-m:单独启用其他模块,使用 -m http 开启http模块
不加-m参数,则默认执行同步程序

./bin/sersync -dro  confxml.xml

然后检测 /data目录下的文件变化后,就将文件推送到备份服务器相应目录中了.

高并发数据实时同步方案.(windows+Linux)  业务系统之间实时同步.

原文地址:https://www.cnblogs.com/Enzoo/p/10078708.html

时间: 2024-10-06 16:57:35

实时同步服务知识梳理的相关文章

实时同步服务(inotify+sersync)

[inotify] 一.Inotify概念 1.概念一种强大的,细粒度的,异步文件系统事件监控机制,内核从2.6.23开始支持使用,具体监控事项(增删改)2.安装软件yum -y install inotify-tools (前提是部署好epel源)3.inotify软件应用软件前提linux内核从2.6.13起开始使用,加入inotify支持[[email protected] ~]#cd /proc/sys/fs/inotify/[[email protected] /proc/sys/fs

rsync实时同步服务部署

部署rsync服务 一.需求:把客户端文件同步到服务端指定位置服务端:备份服务器为 172.16.3.164客户端:推送服务器为 172.16.3.94 二.基础知识: rsync 分为服务器端.客户端,服务器端搭建比客户端辛苦一些. rsync 服务器是指以 deamon 方式运行 rsync 服务的服务器,需要打开 rsync deamon 和启动 xinetd 服务.默认端口873. rsync 客户端是发起 rsync 连接的服务器,安装rsync即可. rsync 客户端发起连接后,r

centos7 inotify与rsync实现实时同步服务搭建

**需要准备两台虚拟机 一台rsync的客户端 192.168.1.14 一台rsync的服务器 192.168.1.12 inotify的服务器配置 yum install inotify-tools 192.168.1.14由于inotify是内核级别的应用,我们不能直接操作内核 需要借用一些关于inotify的相关工具 inotifywa /data/ 监控此目录 一次性操作,复制ssh渠道 在复制渠道/data目录下进行增删改查的操作 观察监控窗口的变化 inotifywait -mrq

Rsync+inotify实现文件实时同步

数据备份.文件备份是运维.DBA等岗位最熟悉不过的话题,这里不介绍数据库的备份,简单介绍一下文件同步工具,这样的工具有很多,Windows环境下有Goodsync.FreeFileSync等,Linux下rsync.unison等,常用的实时同步,是几种工具的组合,经过组合的工具达到文件实时同步的效果. 一.常用实时同步方案 1.NFS网络文件系统 该方案是分布式架构中,解决不同节点对同一资源访问的问题,搭建NFS服务器,将其挂载在不同的节点,每个节点将公用的数据存储在NFS服务器上,实现文件的

Sersync+rsync实时同步

Sersync+rsync实时同步服务端设置(相当于备份服务器)1.确认rsync是否安装[[email protected] ~]# rpm -qa|grep rsyn*rsyslog-5.8.10-10.el6_6.x86_64rsync-3.0.6-12.el6.x86_64 2.服务端按转有rsync工具没有可以yum安装yum install rsync -y 3.配置rsync配置文件,原先是没有的需要创建cat >>/etc/rsyncd.conf<<EOFuid =

四.实时同步

01. 课程概念介绍 01. 为什么要用实时同步服务 因为定时任务有缺陷,一分钟以内的数据无法进行同步,容易造成数据丢失 02. 实时同步工作原理 a 创建要存储数据的目录 b 利用实时同步的软件监控我们进行备份的数据目录 c 利用rsync服务进行数据推送传输备份 02. 实时同步服务软件部署 a inotify+rsync实现实时同步备份 第一个里程:将inotify软件安装成功 yum install -y inotify-tools 说明:操作系统的yum源文件中,是否存在epel源 w

sersync/lsyncd实时同步

第一章 sersync/lsync实时同步 1.1 实时同步服务原理/概念 1)需要部署好rsync守护进程服务,实现数据传输 2)需要部署好inotify服务,实现目录中数据变化监控 3)将rsync服务和inotify服务建立联系,将变化的数据进行实时备份传输 1.2 inotify介绍 ? Inotify是一种强大的,细粒度的,异步的文件系统事件监视机制,Linux2.6.13起加入了inotify支持,通过inotify可以监控文件系统中添加,删除,修改,移动等各种事件,利用这个内核接口

Rsync服务实时同步目录

-- sync 同步async 异步rsync 远程同步 rsync     remote sync    远程同步 拷贝和同步的区别? rsync  - faster, flexible replacement for rcp rsync  - a fast, versatile, remote (and local)       file-copying tool Wget - The non-interactive network down-loader. wget http://10.1

20190308 samba服务、inotify和rsync实现实时同步、防火墙

Samba服务[root@centos7 ~]#yum install samba[root@centos7 ~]#systemctl start smb[root@centos7 ~]#ss -ntluNetid State Recv-Q Send-Q Local Address:Port Peer Address:Port tcp LISTEN 0 50 :139 : tcp LISTEN 0 50 :445 端口已开启 : 可以做共享了. 主配置文件:/etc/samba/smb.conf