中原六仔平台搭建实时同步系统

Rsync 优点中原六仔平台搭建Q1446595067

rsync具有安全性高、备份迅速、支持增量备份等优点,通过rsync可以解决对实时性要求不高的数据备份需求,例如定期地备份文件服务器数据到远程服务器上,对本地磁盘定期进行数据镜像等。
Rsync 不足

随着应用系统规模的不断扩大,对数据的安全性和可靠性提出了更高的要求,rsync便暴露出了很多不足之处。首先,rsync同步数据时,需要扫描所有文件后进行比对,然后进行差量传输。如果文件数量达到了百万量级及以上时,扫描文件就非常耗费时间,有时还会出现只是很少一部分数据发生了变化,因此rsync就变得非常低效了。其次,rsync不能够实时监测、同步数据,虽然它可以通过Linux守护进程的方式触发同步,但是两次触发动作一定会出现时间差,可能导致服务器端和客户端的数据出现不一致,后期无法在出现故障时完全恢复数据。
Rsync+inotify组合

为解决以上问题而出现的,实现了数据的实时同步
inotify是什么 ?

inotify是一种强大的、细粒度的、异步的文件系统事件监控机制,Linux内核从2.6.13版本起,加入了对inotify的支持。通过inotify可以监控文件系统中添加、删除、修改、移动等各种事件,利用这个内核接口,inotify-tools便可以监控文件系统下文件的各种变化情况了。
检查内核是否支持inotify:

Rsync+inotify搭建实时同步系统
实验案例:rsync+inotify搭建实时同步系统

案例描述:在前文Haproxy搭建高可用Web集群的网站拓扑架构图基础上,实现两台Web站点数据的实时同步,web1服务器为内容发布节点,web2服务器为同步节点(本文主要说明rsync+inotify实时同步数据技术,其他请阅读前文,谢谢!)。
系统环境
主机 操作系统 IP地址 web站点目录 软件包
负载调度服务器: CentOS 7.0 x86_64 192.168.100.25 无 haproxy-1.5.19.tar.gz
web1节点服务器: CentOS 7.0 x86_64 192.168.100.26 /www/wwwroot nginx-1.12.0.tar.gz、rsync-3.1.3.tar.gz、inotify-tools-3.14.tar.gz
web2节点服务器: CentOS 7.0 x86_64 192.168.100.27 /web2/wwwroot nginx-1.12.0.tar.gz、rsync-3.1.3.tar.gz
Win 7 客户端: Windows 7 192.168.100.30 无 无

软件包:rsync+inotify 密码:do45
开始部署

inotify-tools是用来监控文件系统变化的工具,因此必须安装在内容发布系统上,服务节点无需安装它,而web2服务器上需要安装rsync实现文件传输。
一、web2服务器(待同步数据:rsync)
1.安装rsync软件包

#解压
tar zxvf rsync-3.1.3.tar.gz -C /opt
#切换目录
cd /opt/rsync-3.1.3
#配置
./configure
#编译及安装
make && make install

2.修改rsync配置文件:

/etc/rsyncd.conf

#/etc/rsyncd: configuration file for rsync daemon mode
#See rsyncd.conf man page for more options.
#configuration example:
uid = nobody
gid = nobody
use chroot = no
max connections = 10
strict mode=yes
pid file = /var/run/rsyncd.pid
lock file=/var/run/rsync.lock
log file=/var/log/rsyncd.log
[web1]
path = /web1/wwwroot
comment = web1 file
ignore errrors
read only=no
write only=no
hosts allow=*
hosts deny=192.168.100.10
list=false
uid=root
gid=root
auth users=web1user
secrets file=/etc/web1.pass

3.新建密码文件(文件格式:user:pass)

/etc/web1.pass

> web1user:www123

修改密码文件权限

chmod 600 /etc/web1.pass

4.启动rsync守护进程

/usr/local/bin/rsync --daemon

5.加入系统自启动文件

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

6.查看rsync进程

ps -ef | grep rsync

Rsync+inotify搭建实时同步系统
二、web1服务器(内发发布节点:rsync+inotify)
1.安装rsync软件包

#解压
tar zxvf rsync-3.1.3.tar.gz -C /opt
#切换目录
cd /opt/rsync-3.1.3
#配置
./configure
#编译及安装
make && make install

2.新建密码文件,需和节点服务器密码一致

/etc/server.pass

> www123

3.修改密码文件权限

chmod 600 /etc/server.pass

4.安装inotify-tools

#解压
tar zxvf inotify-tools-3.14.tar.gz -C /opt
#切换目录
cd -C /opt/inotify-tools-3.14
#配置
./configure
#编译及安装
make && make install

5.编写shell脚本来配置内容发布节点

vim /web/inotifyrsync.sh

#!/bin/bash
host1=192.168.100.26
src=/web/wwwroot/
dst1=web1
user1=web1user
/usr/local/bin/inotifywait -mrq --timefmt ‘%d/%m/%y %H:%M‘ --format ‘%T %w%f%e‘ -e close_write,delete,create,attrib $src | while read files
do
/usr/bin/rsync -vzrtopg --delete --progress --password-file=/etc/server.pass $src [email protected]$host1::$dst1 > /dev/null 2>&1
echo "${files} was rsynced." >> /tmp/rsync.log 2>&1
done

Rsync+inotify搭建实时同步系统
6.为其指定可执行权限,然后放入后台运行

chmod 755 /web/inotifyrsync.sh
/web/inotifyrsync.sh &

7.将脚本加入系统自启动文件

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

测试

在web1服务器节点的/web/wwwroot目录下添加、删除、修改文件,然后到web2服务器节点对应目录去查看文件是否跟随发布节点同步变化。
web1服务器为内容发布节点:

Rsync+inotify搭建实时同步系统
web2服务器进行数据同步:

Rsync+inotify搭建实时同步系统

原文地址:http://blog.51cto.com/13877732/2147201

时间: 2024-11-06 07:32:21

中原六仔平台搭建实时同步系统的相关文章

mysql实现秒值转换中原六仔平台搭建

需求:求一个人的在线时间,中原六仔平台搭建统计出来的为秒值,需转换成指定格式显示,企 娥:217 1793 408 开始想找有什么函数可以这么做,结果试了好几个 不稳没起作用,还是得通过计算concat 拼接 整除3600 取得小时数,余3600 整除 60 取得分钟 回顾mysql的 整除方法 一. 整除:div 5 div 2 = 2; 二. 取余:mod 5 mod 2 = 1; 三. 四舍五入:round round(1.5) = 2; sql如下: SELECT concat(conc

OpenGL着色器中原六仔平台搭建程序解析--3D拾取

3D拾取指的是中原六仔平台搭建论坛:haozbbs.com Q1446595067 将鼠标在屏幕上点击的位置匹配到3d游戏场景中的某个图元上,该图元投影到屏幕上的像素恰好就是鼠标点击的像素.3D场景在很多交互情境中有重要作用,使开发者的应用能够将用户的点击对应到场景空间中的物体上.例如:用户可以通过点击选中某个物体或者物体的某一部分进行删除等后续操作.在这个教程中的demo中,我们将渲染几个物体,并且展示如何使用红色标记选中的三角形图元使其突出显示. 为了实现3D拾取,我们将用到第23章阴影贴图

rsync+inotify搭建实时同步系统

Rsync 优点 rsync具有安全性高.备份迅速.支持增量备份等优点,通过rsync可以解决对实时性要求不高的数据备份需求,例如定期地备份文件服务器数据到远程服务器上,对本地磁盘定期进行数据镜像等. Rsync 不足 随着应用系统规模的不断扩大,对数据的安全性和可靠性提出了更高的要求,rsync便暴露出了很多不足之处.首先,rsync同步数据时,需要扫描所有文件后进行比对,然后进行差量传输.如果文件数量达到了百万量级及以上时,扫描文件就非常耗费时间,有时还会出现只是很少一部分数据发生了变化,因

Linux下常用的us六仔平台租用命令

修改文件或者目录的权限(us六仔平台租用) 企 娥:217 1793 408chmod 777 [文件名或者目录] //777分别表示user/group/other中的rwx 查看内存使用情况 top | grep opencv_test 查看opencv_test这个进程的内存使用情况(top命令就像window里的任务管理器[动态的]) 程序后台运行 在执行命令后面加个& e.g. ./opencv_test & 查看文件内容的命令 1cat 由第一行开始显示内容,并将所有内容输出2

Nginx源码分析之中原六仔源码修复

Nginx的配置结构复杂至极,比Nginx其他模块的都复杂,想要彻底搞清楚,还需要下功夫.下面是个人的一些理解.中原六仔源码修复(企 娥:217 1793 408) if (cmd->type & NGX_DIRECT_CONF) {/"daemon" "worker_processes"等指令为NGX_DIRECT_CONF指令其实也是NGX_MAIN_CONF指令,但是先判断了NGX_DIRECT_CONF所以走这个分支*/conf = ((voi

利用rsync+inotify搭建实时同步系统

系统环境(本例只列举一个服务节点): 内容发布节点server1:192.168.1.154 服务节点    c1:192.168.1.148 C1: #安装配置rsync [[email protected] ~]# yum install rsync -y [[email protected] ~]#vim /etc/rsyncd.conf uid = nobody gid = nobody ignore errors read only = no write only = no list 

ELK搭建实时日志分析平台之二Logstash和Kibana搭建

本文书接前回<ELK搭建实时日志分析平台之一ElasticSearch> 文:铁乐与猫 四.安装Logstash logstash是一个数据分析软件,主要目的是分析log日志. 1)下载和解压logstash 下载地址: https://www.elastic.co/cn/downloads/logstash 上传到服务器/usr/ELK目录后,解压:sudo tar -zxvf logstash-6.1.3.tar.gz 我下的这个6.1.3版本的logstash tar包大小有110多M了

[Big Data - ELK] ELK(ElasticSearch, Logstash, Kibana)搭建实时日志分析平台

ELK平台介绍 在搜索ELK资料的时候,发现这篇文章比较好,于是摘抄一小段: 以下内容来自: http://baidu.blog.51cto.com/71938/1676798 日志主要包括系统日志.应用程序日志和安全日志.系统运维和开发人员可以通过日志了解服务器软硬件信息.检查配置过程中的错误及错误发生的原因.经常分析日志可以了解服务器的负荷,性能安全性,从而及时采取措施纠正错误. 通常,日志被分散的储存不同的设备上.如果你管理数十上百台服务器,你还在使用依次登录每台机器的传统方法查阅日志.这

java实现微信公众号房卡牛牛六人平台开发搭建文章采集接口程序

日志实体类,用户记录用户登录登出 LogRec.javapackage q.dms.test; import java.util.Date; /** 实体类 包含用户登录的id,ip,userName,Long_in,Log_out,address,type @author sky_mg 2017年6月4日下午3:07:44 TODO 记录用户登录,登出信息记录 微信公众号房卡牛牛六人平台开发搭建教程:h5.fanshubbs.com联系技术Q:1687054422/ public class