首页 > 其他 > 详细

sersync实时同步数据; 解决nfs单点故障问题的脚本

时间:2021-04-23 16:08:19      阅读:23      评论:0      收藏:0      [点我收藏+]

sersync实时同步数据

sersync是国?基于rsync+inotify-tools开发的?具,不仅保留了优点同时还强化了实时监控,?件过滤,简化配置等功能,帮助?户提?运?效率,节省时间和?络资源。

1.什么是实时同步

实时同步是?种只要当前?录发?变化则会触发?个事件,事件触发后会将变化的?录同步?远程服务器

2.为什么实时同步

保证数据的连续性, 减少??维护成本,解决nfs单点故障

3.实现同步的原理

实时同步需要借助inotify通知接?,?来监控?录的变化,如果监控的?录发?变更,则触发动作,这个动作可以是进??次同步操作,或其他操作

4.实时同步?具的选择

sersync+RSYNC(√)、inotify+rsync
Inotify是?个通知接?,?来监控?件系统的各种变化,如果?件存取,删除,移动。可以?常?便
地实现?件异动告警,增量备份,并针对?录或?件的变化及时作出响应。rsync+inotify可以做到实
时增量备份
sersync是国?基于rsync+inotify-tools开发的?具,不仅保留了优点同时还强化了实时监控,?
件过滤,简化配置等功能,帮助?户提?运?效率,节省时间和?络资源。

sersync项?实战

1.环境准备

技术分享图片

2.nfs服务器部署sersync

1)安装rsyncinotify

[root@nfs ~]# yum install -y rsync inotify-tools

2)下载sersync

[root@nfs ~]# wget
http://down.whsir.com/downloads/sersync2.5.4_64bit_binary_stable_final.tar.gz

3)安装sersync(?进制包)

[root@nfs ~]# tar xf sersync2.5.4_64bit_binary_stable_final.tar.gz

源码包:解压,?成,编译,安装

4)配置sersync

[root@nfs ~]# cd GNU-Linux-x86
[root@nfs GNU-Linux-x86]# vim confxml.xml
<inotify>
 ****#监控的动作,true就推送,false就不推送
 <delete start="true"/>
 <createFolder start="true"/>
 <createFile start="true"/>
 <closeWrite start="true"/>
 <moveFrom start="true"/>
 <moveTo start="true"/>
 <attrib start="true"/>
 <modify start="true"/>
 </inotify>
 <sersync>
 ****#监控的?录
 <localpath watch="/data">
 **** #rsync服务端IP      #模块名字
 <remote ip="172.16.1.41" name="data"/>
 <!--<remote ip="192.168.8.39" name="tongbu"/>-->
 <!--<remote ip="192.168.8.40" name="tongbu"/>-->
 </localpath>
 <rsync>
**** #rsync推送时的参数
 <commonParams params="-az"/>
 ****#rsync推送时认证 #认证的虚拟?户 #虚拟?户对应的密码?件
 <auth start="true" users="rsync_backup"
passwordfile="/etc/rsync.password"/>
 #如果rsync不使?默认的873端?,使?改参数指定
 <userDefinedPort start="false" port="874"/><!-- port=874 -->
 #超时时间
 <timeout start="false" time="100"/><!-- timeout=100 -->
 <ssh start="false"/>
 </rsync>
 #错误?志保存路径
 <failLog path="/tmp/rsync_fail_log.sh" timeToExecute="60"/><!--
default every 60mins execute once-->
 #定时任务,设置多久进??次全量备份
 <crontab start="false" schedule="600"><!--600mins-->
 <crontabfilter start="false">
 <exclude expression="*.php"></exclude>
 <exclude expression="info/*"></exclude>
 </crontabfilter>
 </crontab>
 <plugin start="false" name="command"/>
 </sersync>
# *表示必须要改的

5)创建密码?件

[root@nfs sersync]# echo "123" > /etc/rsync.password
[root@nfs sersync]# chmod 600 /etc/rsync.password

6)查看sersync命令

[root@nfs sersync]# ./sersync2 -h
set the system param
execute:echo 50000000 > /proc/sys/fs/inotify/max_user_watches
execute:echo 327679 > /proc/sys/fs/inotify/max_queued_events
parse the command param
_______________________________________________________
参数-d:启?守护进程模式
参数-r:在监控前,将监控?录与远程主机?rsync命令推送?遍
c参数-n: 指定开启守护线程的数量,默认为10个
参数-o:指定配置?件,默认使?confxml.xml?件
参数-m:单独启?其他模块,使? -m refreshCDN 开启刷新CDN模块
参数-m:单独启?其他模块,使? -m socket 开启socket模块
参数-m:单独启?其他模块,使? -m http 开启http模块
不加-m参数,则默认执?同步程序
______________________________________________________________

#常用参数:-dro

7)启动sersync

[root@nfs sersync]# ./sersync2 -dro confxml.xml

8)验证?件实时同步

在web服务器安装httpd php (两台机器上全需要执行)

[root@web1 ~]# yum install httpd php -y

[root@web1 ~]# systemctl start httpd

# 将kaoshi.zip解压至/var/www/html目录(只需要在一台服务器上执行)
[root@web1 ~]# mv kaoshi.zip /var/www/html/
[root@web1 ~]# cd /var/www/html/
[root@web1 html]# unzip kaoshi.zip 

解决NFS单点故障问题

#!/bin/bash

ping -c1 172.16.1.31 >/dev/null

if [ $? -ne 0 ];then
	umount -lf /var/www/html && mount -t nfs 172.16.1.41:/sersync /var/www/html/
else

	df -h | grep 172.16.1.31 >/dev/null

	if [ $? -ne 0 ];then
		umount -lf /var/www/html && mount -t nfs 172.16.1.31:/sersync /var/www/html	
	fi
fi
脚本解析
#!/bin/bash

ping -c1 172.16.1.31 >/dev/null
或者用showmount -e 172.16.1.31 >/dev/null #查看31是否可以挂载

if [ $? -ne 0 ];then #如果不可以挂载,则证明故障,执行下面命令挂载到41去
	umount -lf /var/www/html && mount -t nfs 172.16.1.41:/sersync /var/www/html/
else  #如果可以挂载

	df -h | grep 172.16.1.31 >/dev/null #查看挂载是在31还是41

	if [ $? -ne 0 ];then #如果不在31
		umount -lf /var/www/html && mount -t nfs 172.16.1.31:/sersync /var/www/html	
	fi
fi

#web01 he web02 都要写vim 脚本.sh

sersync实时同步数据; 解决nfs单点故障问题的脚本

原文:https://www.cnblogs.com/caodan01/p/14692632.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!