实时数据同步Inofity、sersync、lsyncd

2024-12-16 14:46:38 股票分析 雯燕

实时数据同步Inofity、sersync、lsyncd

企业网站和应用都得有完全的数据备份方案确保数据不丢失,通常企业有如下的数据备份方案 需要周期性备份的数据可以分两类: 因为定时任务有缺陷,一分钟以内的数据无法进行同步,容易造成数据丢失 实施复制是最适合企业备份重要数据的方式,用于用户提交的数据备份,对于用户提交的普通文件(jpg、tar、zip、MP4、txt、html)等待,都可以用实时备份方案。 对于数据文件,还有更复杂的分布式存储方案,把数据同时备份成多份,如FastDFS、GlusterFS等 对于提交到数据库中的数据,还可以用数据库的主从复制(如MySQL),这是软件自带的实时备份。 Inotify是一个强大的,细粒度的,异步的文件系统事件监控机制。 事件是指如文件的增删改查都是事件。 Linux2.6.13开始就引入了inotify这个功能,用于监控文件系统的增删改查等事件。 第三方软件能实现监控文件内容变化,其实是因为linux提供了这个inotify机制功能。 软件依赖程序部署难点说明 Inotify-tools Rsync守护进程 写复制脚本 监控目录数据变化 Inotify是一种异步的系统事件监控机制,通过Inotify可以监控文件系统中添加、删除、修改等事件,利用这个内核接口,第三方软件可以监控文件系统下的情况变化。 那么Inofity-tools就是该类软件的实现,是一个监控指定目录数据实时变化的软件。 1.实时复制软件会监控磁盘文件系统的变化,比如指定的/data目录,实时复制软件进程会实时监控这个/data目录中对应文件系统数据的变化。 2.一旦/data目录文件发生变化,就会执行rsync命令,将变化的数据推送到备份服务器对应的备份目录中 Inotify-tools本身的核心功能都是,具体的复制到远端服务器的功能还是借助Rsync工具配合, Inotify机制软件工作流程如下 部署拓扑图 以rsync守护进程模式部署,且以远程数据同步方式,由client向server推送数据。 我们这里设计的形式是,数据推送 理解rsync部署流程 具体部署流程就跳过了,看于超老师讲解rsync的博客篇即可。 1.确认rsync命令存在 2.创建rsync连接所需的密码文件,授权 具体部署流程就跳过了,看于超老师讲解rsync的博客篇即可。 在上述,确保了,两台机器可以正确进行rsync数据同步后。 我们可以开始部署inotify了 只有Linux内核版本在2.6.13起才支持,以及是否存在三个系统文件,存在则支持 (需要配置epel源) 上述操作我们安装好了Inotify-tools软件,生成2个重要的命令 【inotifywait命令解释】 利用Inotify软件监控的事件主要是如下,也是我们使用命令,需要指定的那些事件,指的就是你想监控文件内容变化了,还是被删了,还是正在被编辑,被修改,等情况。 关于监控事件的细节解释 使用参数解释 当我们的代码目录,有了更新,希望立即实现数据同步,即可检测create事件。 执行命令,以及对日志进行格式化,默认检测所有事件 可以知道,inotiify的作用是,基于不同的事件,检测文件夹中,文件的变化。 当检测到有事件发生后,证明文件变化,我们可以执行数据同步rsync操作了。 可知,这个工具的用法就是 1.inotify检测文件变化 2.执行rsync同步 那么想自动化实现的话,手工是不行了,就的结合脚本实现。 1.脚本如下,这里需要跟着超哥学完shell编程之后,方可理解。 先看下shell脚本,如何检测到文件内容的变化 这个脚本作用是让shell的while循环,不断的读取,文件内容 因此也可以用来读取inotifywait检测的日志信息,一旦有新日志出现,我们就执行rsync同步,实现(文件内容检测+rsync同步) 改造脚本,脚本需求是 1.开发机器上的代码目录,一旦有代码更新,执行rsync,将代码文件发给备份服务器 1.写入数据;2.查看rsync是否有数据同步 ;3.删除事件也支持 https://code.google.com/archive/p/sersync/ 关于软件的下载地址,以及项目介绍,作者介绍。 提到数据同步就必然会谈到rsync,一般简单的服务器数据传输会使用ftp/sftp等方式,但是这样的方式效率不高,不支持差异化增量同步也不支持实时传输。 针对数据实时同步需求大多数人会选择rsync+inotify-tools的解决方案。 sersync是国人基于前两者开发的工具,不仅保留了优点同时还强化了实时监控,文件过滤,简化配置等功能,帮助用户提高运行效率,节省时间和网络资源。 Sersync项目利用Inotify和Rsync工具技术实现对服务器数据实时复制。 当事件发生变化后,利用rsync命令把变化的数据复制到远端服务器上。 Sersync特点 其中confxml.xml是配置文件,文件内容很容易理解。以下是示例文件内容说明。 只监控一个目录 监控2个目录
搜索
最近发表