rsync + inotify 实现多台服务器数据同步

环境分析:
目前环境4台web服务器采用共享存储技术,由于nas服务最近频繁掉线,影响网站访问,故计划采用对象存储方案。我们云环境补救措施可以用多台Linux服务器做存储,配合rsync(同步)+notify(触发)实现服务器数据同步。

方案实施:

1、方案分析:
每台web服务器上分别挂载一个存储盘/newweb,将原先网站访问资源指向/otherweb的路径修改至这个/newweb,由于磁盘容量没有nas大,可以将web用到的数据源,如图片、网页等放在这个路径下,邮箱、日志等继续放在nas下,即便nas掉线,也不影响网站正常访问。
2、同步步骤:
Master 作为主控制点,每次更新资源在master上,master会实时检查文件是否有更新,如果更新,则会同步数据到web1-web4上面,如果没有更新,则不会同步,这样可以减少服务器不必要的负载,同时master也可作为备份服务器。
3、技术分析:
Inotify,它是一个内核用于通知用户空间程序文件系统变化的机制,也是一种文件系统的变化通知机制,如文件增加、删除等事件可以立刻让用户态得知。
?rsync其实就是remote ?rsync,它是一个远程同步工具,兼具cp和scp的功能,rsync命令的使用几乎和scp是一样一样的。rsync是通过超级守护进程xinetd进行触发同步的。
rsync+inotify组合是触发式更新,只要有数据变化,就立刻同步更新
编写rsync脚本,实现数据实时同步,可将脚本后台执行。

下面开始操作步骤:
1)rsync客户端master服务上安装rsync,inotify :
yum -y install rsync

2 rsync服务器端,也就是web所在服务器,如web1,仅安装rsync即可
yum -y install rsync
编辑rsync配置文件vim /erc/rsyncd.conf:

3,启动rsync服务:
systemctr start rsyncd

4,在rsync客户端上编写rsync脚本,赋予可执行权限:

然后执行 ./rsync.sh &
在客户端写入一个测试文件,然后在其他服务器上查看是否同步。

原文地址:https://blog.51cto.com/string/2442659

时间: 2024-10-12 16:56:05

rsync + inotify 实现多台服务器数据同步的相关文章

CentOS7通过rsync+crontab实现两台服务器文件同步

centos7系统中已经默认安装rsync 1:主服务器配置 (1)修改rsyncd.conf 配置文件 [[email protected] app]# vi /etc/rsyncd.conf motd file = /etc/rsyncd.motdlog file = /var/log/rsyncd.logpid file = /var/run/rsyncd.pidlock file = /var/run/rsyncd.lockport = 873address = 192.168.0.24

利用rsync+inotify实现主从服务器数据同步的简单案例

写在前面:如果此文有幸被某位朋友看见并发现有错的地方,希望批评指正.如有不明白的地方,愿可一起探讨. rsync是Linux下一款非常强大的同步工具,其最大的劣势在于每次执行rsync命令都会遍历目标目录.想象一下这样一种情况:当目录下改动的文件数量并不多且目录下本身文件数量达到一定规模时,每次遍历都会消耗很多资源.那么有没有这样一种工具,当某文件改动后,主动触发rsync命令去同步修改过的文件呢?答案是肯定的,要不然就没有这篇文章了,这个工具就是:inotify. 接下来,本文就利用rsync

使用rsync实现服务器数据同步备份

使用rsync实现数据实时同步备份 实验目标 rsync 远程同步 实战1: 备份/var/www/html 目彔 实战2: 使用ssh密钥实现无交互备份 实战3: 配置rsync 服务器及需要备份的目彔,不使用系统用户 实战4: 配置rsync+inotify实时同步 实战5: 防止网页被篡改 实验概述 软件简介 Rsync ( Remote sync)是一个远程数据同步工具,使用与unix/Linux/windows等多种平台.  可通过LAN/WAN 快速同步多台主机间的文件.Rsync

sersync实现多台服务器实时同步文件

基本架构 如上图所示,线程组线程是等待线程队列的守护线程,当队列中有数据的时候,线程组守护线程逐个唤醒,当队列中inotify事件较多的时候就会被全部唤醒一起工作.这样设计的目的是能够同时处理多个inotify事件,重发利用服务器的并发能力(核数*2+2). 之所以称之为线程组线程,是因为每个线程在工作的时候,会根据服务器的数量建立子线程,子线程可以保证所有的文件与各个服务器同时同步,当要同步的文件较大的时候,这样设计可以保证各个远程服务器可以同时获得要同步的文件. 服务线程的作用有三个,首先是

通过rsync+inotify实现文件的实时备份同步

原文参考:http://ixdba.blog.51cto.com/2895551/580280/ http://www.bamaol.com/Psy/Showposts-010000108-5048.html 一,rsync安装 目前rsync的最新版本是3.0.9 wget http://rsync.samba.org/ftp/rsync/rsync-3.0.9.tar.gz tar-xvzfrsync-3.0.9.tar.gz;cdrsync-3.0.9; ./configure;make;

Mysql 主从服务器数据同步

安装2台windows Server 服务器,分别安装Mysql,配置环境变量,完成安装确认在CMD窗口可以使用Mysql命令 在Master服务器上创建同步账号,确保Slave服务器能访问Master服务器数据库Master DB Server IP:10.10.0.144Slave DB Server IP:10.10.0.145Mysql > grant replication slave on *.* to [email protected] identified by 'Passwor

sybase代理表 跨服务器数据同步

sybase ASE 代理表  跨服务器数据同步 之前双做了sybase服务器数据同步,使用的代理表.近期更换server1,一开始安装sybase时本地服务器名不同,server1的数据直接dump,完成后可以读取数据,但在执行代理表数据插入本地表中时报错.查询后 select @@servername 本地名为db3 查询原本地服务器名为charge 删除原名 sp_dropserver db3 设置新名,即原server1名 sp_addserver charge,local 重启syba

rsync+inotify实现对web服务器上的文件自动同步

rsync: rsync是一个远程同步工具,非常强大的一款工具,在同步时可以保持文件的权限,属性,硬链接等,通过"rsync算法"来实现本地和远程主机的数据同步,并且是扫描两个主机之间不同的文件来进行传输,而不是整份的传输,因此速度相当快.但是随着系统规模的越来越大,rsync暴露出很多不足. 首先,rsync同步数据时,需要扫描所有文件后进行比对,进行差量传输.如果文件数量达到了百万甚至千万量级,扫描所有文件将是非常耗时的.而且正在发生变化的往往是其中很少的一部分,这是非常低效的方式

使用rsync + inotify 实现多台游戏服代码自动实时同步

一 应用场景描述 在LB后端有多台游戏服运行PHP代码,每台服务器的环境部署一样,PHP代码一样.现在有时需要更改游戏配置文件,如更改各个区服的开服状态等.登陆到每台服务器去更改相应的文件会比较繁琐,需要当在第一台服务器上的配置文件作更改时,其他服务器上的配置文件自动更改.于是考虑可以使用rsync + inotify的方式来同步代码. 二 rsync和inotify配置 使用yum -y install rsync安装rsync服务 rsync有两种工作模式,命令行模式和C/S模式 使用man