rsync+inotify搭建实时同步系统

rsync简介

   rsync是Linux和UNIX系统下的文件同步和数据传输工具,它采用了“rsync”算法使一个客户机和远程文件服务器之间的文件同步,它不同于cp和wget命令完整复制的局限性,它支持增量备份,因此文件传输效率高,因而同步时间很短,具体特性如下:

   1、可以镜像保存整个目录树和文件系统

   2、可以增量同步数据。文件传输效率高。

   3、可以保持原有文件的权限、时间等属性。

   4、加密传输数据,保证数据的安全性。

   5、可以使用rcp、ssh等方式来传输文件。


搭建远程容灾备份系统

   Web服务器为了保证数据安全,每天凌晨2点将数据备份到远程容灾服务器上,由于数据量比较大,每年只能进行增量备份,仅备份当天新增数据,系统环境如下:

操作系统 RHEL5.8
内核版本2.6.18-308.el5
web服务器地址192.168.1.104
远程容灾服务器地址192.168.1.110

Web端配置

主配置文件/etc/rsyncd.conf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
uid = nobody
gid = nobody
use chroot = no
max connections = 10
strict modes =  yes
pid  file  =  /var/run/rsyncd .pid
lock  file  =  /var/run/rsync .lock
log  file  =  /var/log/rsyncd .log
[ixdba]
path =  /webdata
commnet = ixdba  file
ignore errors
read  only = no
write only = no
hosts allow = *
hosts deny = 192.168.1.200
list =  false
uid = root
gid = root
auth  users  = backup
secrets  file  =  /etc/server .pass

密码文件chmod 600 /etc/server.pass 

1
backup:ixdba123

启动rsync守护进程

1
/usr/local/bin/rsync  --daemon

远程容灾端配置

密码文件chmod 600 /etc/server.pass

1
ixdba123

添加计划任务crontab -e

1
1 3 * * *   /usr/local/bin/rsync  -vzrtopg --delete --progress --exclude  "*access*"  --exclude  "debug*"  backup@192.168.1.104::ixdba  /ixdba . dir  --password- file = /etc/server .pass

分析不足

此时一个远程容灾系统已经搭建完成,但这并非是一个完整意义上的容灾方案,由于rsync需要通过触发才能将服务器端数据同步,因此两次触发同步的时间间隔内,服务器和客户端的数据可能不一致,如果在这个时间间隔内,网站系统出现问题,数据必然丢失,Linux 2.6.13以后的内核提供了inotify文件系统监控机制,用过rsync与inotify的组合,完全可以实现rsync服务器端和客户端的实时数据同步。


rsync+inotify实现数据的实时备份

   inotify是一种强大的、细粒度的、异步的文件系统时间监控机制,Linux内核从2.6.13版本起,加入了对inotify的支持。通过inotify可以监控文件系统中添加、删除、修改、移动等各种细微事件,利用这个内核接口,第三方软件可以监控文件系统下文件的各种变化情况,inotify-tools软件正是基于这种需求实现的一个第三方软件。

   内容分发服务器实时同步数据对2个Web服务器上,inotify是用来监控文件系统变化的工具,因此必须安装在内容发布节点上,内容发布节点(Server)充当了rsync客户端的角色,2个Web节点充当了rsync服务器端的角色,整个数据同步过程就是一个从客户端向服务器端发送数据的过程,与前面案例中的逻辑结构刚好相反,系统环境如下:

     节点名称     内核版本       IP地址网页数据存放路径
Web12.6.18-308.el5192.168.1.110/web1/wwwroot
Web22.6.18-308.el5192.168.1.160/web2/wwwroot
Server2.6.18-308.el5192.168.1.104/web/wwwroot

Web1端配置

主配置文件/etc/rsyncd.conf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
uid = nobody
gid = nobody
use chroot = no
max connections = 10
strict modes =  yes
pid  file  =  /var/run/rsyncd .pid
lock  file  =  /var/run/rsync .lock
log  file  =  /var/log/rsyncd .log
[web1]
path =  /web1/wwwroot
commnet = web1  file
ignore errors
read  only = no
write only = no
hosts allow = 192.168.1.104
hosts deny = *
list =  false
uid = root
gid = root
auth  users  = web1user
secrets  file  =  /etc/server .pass

密码文件chmod 600 /etc/server.pass

1
web1user:ixdba123

启动rsync守护进程并添加开机自动启动

1
2
echo  "/usr/local/bin/rsync"  >> /etc/rc . local
/usr/local/bin/rsync--daemon

Web2端配置

主配置文件/etc/rsyncd.conf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
uid = nobody
gid = nobody
use chroot = no
max connections = 10
strict modes =  yes
pid  file  =  /var/run/rsyncd .pid
lock  file  =  /var/run/rsync .lock
log  file  =  /var/log/rsyncd .log
[web2]
path =  /web2/wwwroot
commnet = web2  file
ignore errors
read  only = no
write only = no
hosts allow = 192.168.1.104
hosts deny = *
list =  false
uid = root
gid = root
auth  users  = web2user
secrets  file  =  /etc/server .pass

密码文件chmod 600 /etc/server.pass

1
web2user:ixdba123

启动rsync守护进程并添加开机自动启动

1
2
echo  "/usr/local/bin/rsync"  >> /etc/rc . local
/usr/local/bin/rsync--daemon

Server端配置

安装inotify-tools

1
2
3
4
tar  xf  rsync -3.0.7. tar .gz
cd  rsync -3.0.7
. /configure
make  &&  make  install

密码文件chmod 600 /etc/server.pass

1
ixdba123

监控目录变化并同步Web节点脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#!/bin/sh
host1=192.168.1.110
host2=192.168.1.160
dir = /web/wwwroot/
dst1=web1
dst2=web2
usr1=web1user
usr2=web2user
/usr/local/bin/inotifywait  -mrq --timefmt  '%d/%m/%y %H:%M'  -- format  '%T %w%f%e'  -e close_write,delete,create,attrib $ dir  \
|  while  read  files
         do
         /usr/bin/rsync  -vzrtopg --delete --progress --password- file = /etc/server .pass $ dir  $usr1@$host1::$dst1
         /usr/bin/rsync  -vzrtopg --delete --progress --password- file = /etc/server .pass $ dir  $usr2@$host2::$dst2
         echo  "${files} was rsynced"  >>  /tmp/rsync .log 2>&1
         done

指定权限并放入后台运行

1
2
chmod  755  /web/wwwroot/inotifyrsync .sh
/web/wwwroot/inotifyrsync .sh &

为此脚本添加开机自动启动

1
echo  "/web/wwwroot/inotifyrsync.sh &"  >>  /etc/rc . local

测试结果

Server端(rsync客户端)创建测试文件,如图:

213932523.png

Web1端查看,如图:

214125433.png

Web2端查看,如图:

214223457.png




本文转自 ftmoonfans  51CTO博客,原文链接:http://blog.51cto.com/soulboy/1281704

rsync+inotify实现服务器之间文件实时同步 rsync+inotify实现服务器之间文件实时同步,内包含部署所需jar包和配置文件 立即下载

相关推荐

龙头复盘神器/复盘于导出工具最新版5.6

龙头复盘神器,复盘于导出工具

初入python踩过的坑 8226

搭建rsync+inotify实时同步

一、准备rsync 在backup备份服务器上准备好rsync。即完成nfs客户端到backup服务端的rsync部署------rsync备份搭建 二、inotify inotify是一种异步文件系统事件监控机制,linux内核从2.6.13开始支持。它可以监控文件系统中添加、删除、修改、移动等各种事件。 nfs客户端安装inotify: 先检查内核版本:uname -r (2...

贵有恒,何必三更眠五更起;最无益,只怕一日曝十日寒 388

o型圈沟槽设计_O型密封圈——详细选型过程及步骤

一、密封圈常用材料二、密封圈常用密封形式密封圈分为活塞密封,活塞杆密封,端面密封,旋转密封。三、O型密封圈的选型规则O型密封圈的尺寸图径向安装O型圈选型(静态和动态运动)活塞杆密封选择适当规格的O形圈时,应该保证其外径(d1+2*d2)至少等于或者大于沟槽外径d6;当选择的O形圈直径d1大于250 mm时, O形圈外径将不能超过沟槽外径的3%;当选择的O形圈直径d1小于250mm时, O形圈外径将...

weixin_39856630的博客 2万+

rsync+inotify简单搭建实时同步

一、rsync环境搭建    1、服务端 (1)、安装rsync yum install -y rsync (2)、编辑/etc/rsyncd.conf配置文件 uid = rsync  gid = rsync  use chroot = no max connections = 200 timeout = 300 pid file = /var/run/rsyncd.pid lo...

zsycsnd的博客 305

Visual Studio 命令提示符工具区别与使用场景

Visual Studio会提供一系列命令提示符工具,这些工具应用在哪些场景呢?本文进行了相关介绍。

cicada15的博客 3490

ICM42670 IIC驱动与卡尔曼+四元数姿态解算实战

惯性测量单元(IMU)是运动控制、无人机飞控和AR/VR设备的核心传感器,其数据质量直接取决于底层硬件通信可靠性与姿态估计算法鲁棒性。IIC(I²C)作为嵌入式系统中最常用的低速串行总线,需满足确定性时序、抗干扰与实时采样要求;卡尔曼滤波则通过状态建模与噪声协方差优化,在动态环境中融合加速度计与陀螺仪数据;而四元数因其无万向锁、插值平滑、旋转合成高效等优势,成为高精度姿态解算的数学基础。本文以高性能六轴IMU ICM42670为载体,深入剖析IIC硬件设计要点、裸机级驱动优化、Allan方差驱动的卡尔曼参数

weixin_27076351的博客 251

CentOS7 Rsync服务搭建-Rsync+Inotify架构实现实时同步

centos7 rsync服务搭建-inotify+rsync架构实现实时同步

不羈 23万+

匹配博弈双边选择算法

刚学图论匹配方面的一些知识,记录下来。

ymengm的博客 2434

Rsync+inotify搭建实时同步系统

Rsync 优点 rsync具有安全性高、备份迅速、支持增量备份等优点,通过rsync可以解决对实时性要求不高的数据备份需求,例如定期地备份文件服务器数据到远程服务器上,对本地磁盘定期进行数据镜像等。 Rsync 不足 随着应用系统规模的不断扩大,对数据的安全性和可靠性提出了更高的要求,rsync便暴露出了很多不足之处。首先,rsync同步数据时,需要扫描所有文件后进行比对,然后进行差量传输。如果...

小米bb的博客 423

实战|基于Kappa架构的用户行为实时分析平台搭建教程

数据源:用Kafka存储全量数据(实时+历史),作为“事实来源”;处理引擎:用Flink等流处理引擎,读取Kafka中的数据,执行清洗、转换、聚合等操作;存储层:将处理结果写入实时存储(如Elasticsearch)或批量存储(如Hive);消费层:用可视化工具(如Kibana)展示结果,或提供API供业务系统调用。Kappa架构的关键设计原则全量数据存于Kafka:Kafka的“无限 retention”特性(默认保留7天,可配置更长)让它成为全量数据的存储介质;用流处理引擎处理所有数据。

Java大师兄的博客 797

1. linux系统下在QT中配置OPenCV开发环境

在Linux系统下配置OpenCV的开发环境,需要在官网上下载源码,并使用CMake工具对源码进行编译,与在Windows系统中配置相比复杂许多,本文linux系统为linux minit,opencv是最新版本4.7.0,不过对于linux和opencv的版本要求行不高。此项更改为自己OPenCV想要安装的路径内,默认是安装在**/usr/local。在打开的文件中添加下图中的一行代码,路径是opencv默认的安装路径。按钮,弹出下图界面,默认选择即可,然后点击。

山间点烟雨 2906

CentOS利用inotify+rsync实现文件同步

1、环境部署 inotify-master  10.10.6.208 inotify-slave   10.10.6.149   2、两台服务器都安装rsync yum install -y rsync 3、inotify-slave部署 新建rsync用户及模块目录并更改其用户组 useradd rsync -s /sbin/nologin       #添加rsync用户mkd...

weixin_33982670的博客 109

论文翻译:Automatic Lesson Plan Generation via Large Language Models with Self-critique Prompting

在本文中,我们利用大型语言模型(LLMs)的理解和生成能力来自动生成定制化的课程计划。这解决了传统计划可能无法充分满足不同教学环境和学生群体的特定需求的常见挑战。我们提出了一个新颖的三阶段过程,包括使用检索增强生成(RAG)逐步生成课程计划的每个关键组成部分,通过LLMs进行自我批评,以及随后的细化。我们使用这种方法为小学2至5年级生成了涵盖80多个主题的数学课程计划。邀请了三位经验丰富的教育工作者制定全面的课程计划评估标准,然后使用这些标准将我们的LLM生成的课程计划与同一主题的实际课程计划进行基准比较。

CSPhD-winston的博客 1100

rsync+inotify文件增量同步

rsync是一种强大的命令行工具,用于在本地或远程计算机之间进行文件同步,确保文件的准确性,它可以将文件从一个位置同步到另外一个指定文职,同时在同步过程中节约带宽和存储空间。

菜鸟运维升级之路 1172

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

rsync+inotify搭建实时同步文件

rsync+inotify搭建实时同步文件 rsync是linux、UNIX系统下的文件同步数据传输工具,他采用rsync算法使一个客户机和远程文件服务器之间的文件同步。通过 rsync可以将同一个服务器的数据从一个分区备份到另一个分区,也可以将本地系统的数据通过网络传输方式备份到任何一个远程主机上;rsync可以在中 断之后恢复复制,rsync只传输源文件和目标文件不一致的部分,rsync可以

u011508649的专栏 380

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

rsync+inotify实现代码实时同步

rsyncrsync是lunix系统下的数据镜像备份工具。使用快速增量备份工具Remote Sync可以远程同步,支持本地复制,或者与其他SSH、rsync主机同步。优点:1)、可以镜像保存整个目录树和文件系统。2)、可以很容易做到保持原来文件的权限、时间、软硬链接等等。3)、无须特殊权限即可安装。4)、快速:第一次同步时 rsync 会复制全部内容,但在下一次只传输...

weixin_33810302的博客 141

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

rsync+inotify实现文件同步

什么是rsync,remote synchronize远程同步简写。Linux系统上由rsync这个软件包提供。rsync有几个特点,镜像保存整个文件目录树或文件系统;有较高的数据传输效率;可以借助ssh实现安全数据传输;支持匿名传输等。rsync同步只是针对变化的文件进行传输,意味着其会在源和目标之间比较文件的异同。相对与scp来说,第一次传输两边都效率都差不多。但...

weixin_33775572的博客 91
上一篇: Bash中which的用法
下一篇: Shell中SEQ妙用
weixin_34026484
博客等级 码龄11年 4642粉丝 152原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值