目前业内比较靠谱的同步解决方案有:

rsync+inotify-tools,Openduckbill+inotify-tools和rsync+sersync

前两者由于是基于脚本语言编写,所以规范程度,执行效率相对rsync+sersync就稍微弱一些。

sersync是使用c++编写,基于boost1.43.0,inotify api,rsync command开发,主要用于服务器同步,web镜像等功能。其对linux系统文件系统产生的临时文件和重复的文件操作能够进行过滤,所以在结合rsync同步的时候,节省了运行时耗和网络资源。因此更快,更适合线上使用。

本篇博文就是为了实现将sersync推送端/data下的数据实时同步到rsync接收端/data目录下,实现rsync服务器为sersync的镜像服务器

注:使用rsync+crontab做定时同步时,主服务器端开启rsync守护进程,而镜像服务器是运行rsync客户端,平时一般会利用crontab定时获取rsync服务器上的数据。

但使用rsync+sersync做实时同步时,用于推送文件的服务器运行sersync服务,用于接收文件的服务器则运行rsync守护进程,简单来说就是sersync会利用rsync命令将文件推送到rsync服务器,实际线上使用一般会把sersync作为主服务器,rsync作为镜像服务器,实现数据同步备份,web镜像等功能

解决方案:

操作系统: centos6.3 x86

rsync: centos自带yum源

sersync: sersync2.5_32bit

sersync 推送端 192.168.100.74

rsync 接收端 192.168.100.29

环境搭建:(接收端,推送端)

一.首先关闭selinux与iptables

# vi /etc/sysconfig/selinux

---------

SELINUX=disabled

---------

# setenforce 0

# service iptables stop

在使用sersync之前,我们必须安装配置好rsync服务器

rsync (接收端)

一.安装rsync(centos6.3默认已安装)

# yum install rsync -y

# yum install xinetd -y

二.启动rsync依赖服务

# /etc/init.d/xinetd start

# chkconfig xinetd on

三.配置:

# vi /etc/rsyncd.conf

--------------------

uid = root

gid = root

use chroot = no

max connections = 10

strict modes = yes

port = 873

address = 192.168.100.29

[data] # rsync模块名,后面配置sersync会用到

path = /data # 该同步目录只要uid所指定的用户有写权限即可

comment = mirror for test

ignore errors

read only = no

list = no

auth users = user

secrets file = /etc/rsync.pas # 密码认证文件,必须为600权限,否则启动rsync会报错

hosts allow = *

# hosts deny = 0.0.0.0/0

pid file = /var/run/rsyncd.pid

lock file = /var/run/rsync.lock

log file = /var/log/rsyncd.log

--------------------

四.创建同步目录

# mkdir /data

五.配置认证文件

# echo "user:123456" > /etc/rsync.pas

# chmod 600 /etc/rsync.pas

# rsync --daemon --config=/etc/rsyncd.conf

六.重启xinetd使其配置生效:

# /etc/init.d/xinetd restart

七.设置开机启动:

# echo "rsync --daemon --config=/etc/rsyncd.conf" >> /etc/rc.local

sersync (推送端)

一.下载sersync源码包

# wget http://sersync.googlecode.com/files/sersync2.5_32bit_binary_stable_final.tar.gz

注:若在64位平台安装则可下载64位sersync源码包,本例用32位

# wget http://sersync.googlecode.com/files/sersync2.5_64bit_binary_stable_final.tar.gz

二.创建sersync目录结构

# mkdir /usr/local/sersync

# mkdir /usr/local/sersync/conf

# mkdir /usr/local/sersync/bin

# mkdir /usr/local/sersync/log

# tar zxvf sersync2.5_32bit_binary_stable_final.tar.gz

# cd GNU-Linux-x86/

# cp confxml.xml /usr/local/sersync/conf

# cp sersync2 /usr/local/sersync/bin

三.配置sersync

1.首先创建连接rsyncd的密码文件

# echo "123456" >/etc/rsync.pas

# chmod 600 /etc/rsync.pas

2.配置confxml.xml

# cd /usr/local/sersync/conf

# vi confxml.xml

按照注释进行修改

-----------------------------

<?xml version="1.0" encoding="ISO-8859-1"?>

<head version="2.5">

# 设置本地IP和端口

<host hostip="localhost" port="8008"></host>

# 开启DUBUG模式

<debug start="false"/>

# 开启xfs文件系统

<fileSystem xfs="false"/>

# 同步时忽略推送的文件(正则表达式),默认关闭

<filter start="false">

<exclude expression="(.*)\.svn"></exclude>

<exclude expression="(.*)\.gz"></exclude>

<exclude expression="^info/*"></exclude>

<exclude expression="^static/*"></exclude>

</filter>

<inotify>

# 设置要监控的事件

<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">

# 远程IP和rsync模块名

<remote ip="192.168.100.29" name="data"/>

<!--<remote ip="192.168.8.39" name="tongbu"/>-->

<!--<remote ip="192.168.8.40" name="tongbu"/>-->

</localpath>

<rsync>

# rsync指令参数

<commonParams params="-auvzP"/>

# rsync同步认证

<auth start="true" users="user" passwordfile="/etc/rsync.pas"/>

# 设置rsync远程服务端口,远程非默认端口则需打开自定义

<userDefinedPort start="false" port="874"/><!-- port=874 -->

# 设置超时时间

<timeout start="true" time="100"/><!-- timeout=100 -->

# 设置rsync+ssh加密传输模式,默认关闭,开启需设置SSH加密证书

<ssh start="false"/>

</rsync>

# sersync传输失败日志脚本路径,每隔60会重新执行该脚本,执行完毕会自动清空。

<failLog path="/usr/local/sersync/log/rsync_fail_log.sh" timeToExecute="60"/><!--default every 60mins execute once-->

# 设置rsync+crontab定时传输,默认关闭

<crontab start="false" schedule="600"><!--600mins-->

<crontabfilter start="false">

<exclude expression="*.php"></exclude>

<exclude expression="info/*"></exclude>

</crontabfilter>

</crontab>

# 设置sersync传输后调用name指定的插件脚本,默认关闭

<plugin start="false" name="command"/>

</sersync>

# 插件脚本范例

<plugin name="command">

<param prefix="/bin/sh" suffix="" ignoreError="true"/> <!--prefix /opt/tongbu/mmm.sh suffix-->

<filter start="false">

<include expression="(.*)\.php"/>

<include expression="(.*)\.sh"/>

</filter>

</plugin>

# 插件脚本范例

<plugin name="socket">

<localpath watch="/opt/tongbu">

<deshost ip="192.168.138.20" port="8009"/>

</localpath>

</plugin>

<plugin name="refreshCDN">

<localpath watch="/data0/htdocs/cms.xoyo.com/site/">

<cdninfo domainname="ccms.chinacache.com" port="80" username="xxxx" passwd="xxxx"/>

<sendurl base="http://pic.xoyo.com/cms"/>

<regexurl regex="false" match="cms.xoyo.com/site([/a-zA-Z0-9]*).xoyo.com/p_w_picpaths"/>

</localpath>

</plugin>

</head>

-----------------------------

3.创建推送端sersync同步目录

# mkdir /data

4.设置环境变量:

# echo "export PATH=$PATH:/usr/local/sersync/bin/" >> /etc/profile

# source /etc/profile

5.启动sersync

# sersync2 -r -d -o /usr/local/sersync/conf/confxml.xml

注:重启操作如下:

# killall sersync2 && sersync2 -r -d -o /usr/local/sersync/conf/confxml.xml

6.设置开机启动

# echo "sersync2 -r -d -o /usr/local/sersync/conf/confxml.xml" >> /etc/rc.local

验证:

(推送端)

# cd /data

# touch 1 2 3 4 5

# echo "test sersync" > 1

(接收端)

# cd /data

# ls

--------------------

1 2 3 4 5

--------------------

# cat 1

--------------------

test sersync

--------------------

注:这里提一个细节,如果接收端服务器本地创建或修改/data同步目录下的文件,当服务端进行目录同步时则不会对接收端服务器本地创建或修改的文件产生影响。

本文出自 “一路向北” 博客,请务必保留此出处http://showerlee.blog.51cto.com/2047005/1248429

转载于:https://blog.51cto.com/dnuser/1258329

Centos6.3下rsync+sersync安装配置相关推荐

  1. Centos6.3下rsync+sersync安装配置笔记

    最近单位活比较多,所以就很少更新,晚上上网碰巧看到一篇关于sersync的介绍,个人感觉较rsync+inotify配置更加规范,刚好最近手痒,就总结了下,分享给大家. 目前业内比较靠谱的同步解决方案 ...

  2. CentOS6.5下的Nagios安装配置详解(图文)

    最近因为,科研需要,接触上了Nagios,这里,我将安装笔记做个详解.为自己后续需要和博友们学习! VMware workstation 11 的下载 VMWare Workstation 11的安装 ...

  3. Centos6.4下zabbix的安装配置

    之前有搭建过cacti的应用,但是最近cacti总是出现错误的报警提示,感觉监控不是很严密,对此想使用另外一个监控应用zabbix来作为比较使用. 下面是简要的安装步骤 测试系统环境 # uname ...

  4. Rsync+sersync同步配置

    源服务器:10.11.244.3 目标服务器:10.11.11.108 # 前言: ## 一.为什么要用Rsync+sersync架构? 1.sersync是基于Inotify开发的,类似于Inoti ...

  5. Linux下Rsync+sersync实现数据实时同步

    一.为什么要用Rsync+sersync架构? 1.sersync是基于Inotify开发的,类似于Inotify-tools的工具 2.sersync可以记录下被监听目录中发生变化的(包括增加.删除 ...

  6. django配置环境linux,linux环境下Django的安装配置详解

    linux环境下Django的安装配置详解 1. 下载安装Django pip install Django==1.6.5 测试是否安装成功 >>> import django> ...

  7. Linux下Tomcat的安装配置

    Linux下Tomcat的安装配置 一.下载安装对应的jdk,并配置Java环境. 官网下载地址: http://www.oracle.com/technetwork/java/javase/down ...

  8. linux下pptpd的安装配置(×××)

    linux下pptpd的安装配置(×××)--单网卡×××实现 (本文部分内容摘自互联网,特此声明!)          环境介绍:Linux(redhat) 2.6.18 +PPP+PPTPD    ...

  9. Linux下NDK的安装配置

    Linux下NDK的安装配置 在编写android程序的时候如果需要复用一部分以前的c语言程序,可以考虑使用NDK.由于设计到c和c++编程,故强烈建议在Linux下安装上eclipse的CDT插件. ...

最新文章

  1. 电商课题I:集群环境下业务限流
  2. 关于选择哪些村庄试点新农村建设的讨论
  3. EditorGridPanel的网格样式以及编辑属性设置
  4. mysql 事物封装_mysqls 一个node对mysql的封装库 链式调用、支持事务
  5. 虚拟化是云计算的第一步
  6. 下个软件包可能泄露信用卡信息,Python 包存储库 PyPI 又爆恶意代码,下载达 3 万次,你中招了吗?...
  7. angular 示例项目
  8. fastjson--JSON.toJSONString(OBJ) 报错
  9. python re模块的(...),group(),groups()
  10. yum 装包时,提示Peer cert cannot be verified or peer cert invalid
  11. 机器人改变生活利弊英语作文_机器人的危害英语作文
  12. 2万 字的 Spring Cloud 总结,从此任何问题也难不住你
  13. 基于OpenCV做“三维重建”(1)--找到并绘制棋盘
  14. 51单片机内部外设:实时时钟(SPI)
  15. 德尔玛递交注册:半年营收15亿 小米与欧派是股东
  16. 程序员笔记软件cherrytree推荐
  17. DPI、PPI、DP、PX 的详细计算方法及算法来源是什么
  18. 硅片/SOI绝缘硅片介绍,SOI圆片特点
  19. ejb2.1中ejbQL的缺点,权且作为笔记
  20. 【微信电子书制作软件】名编辑电子杂志大师教程 | 查看添加的元素

热门文章

  1. cvs数据导入工具 oracle_oracle数据库的导入导出
  2. android 添加注释,向Android Saripaar添加自定义注释
  3. win10计算机怎么拨号上网,win10拨号连接怎么创建 win10宽带拨号连接如何设置
  4. usb3.0导入工具pe_BlackHat大会上,BlackBerry宣布开源逆向工具PE Tree
  5. [Intellij] Project Structure 配置说明
  6. ##R语言生信作图之UpsetR做交集图
  7. python的时间序列,Python时间序列
  8. wps改照片底色有红边_入学攻略丨证件照的三种换底色方式,你知道了吗?
  9. 中望CAD的引线标注格式怎么改_大神总结的CAD设计五个段位 快来看看你在哪个阶段...
  10. 排名算法(三)--排序学习