Sersync实现触发式文件同步 替代inotify和rsync

参考文章

http://blog.chinaunix.net/uid-20639775-id-3011124.html

http://www.apelearn.com/bbs/forum.php?mod=viewthread&tid=10738&page=1&extra=#pid113148

http://zyan.cc/sersync/

mrsync https://sourceforge.net/projects/mrsync/

服务器端
1、安装rsync  两边都要做
yum install -y rsync
vi /etc/rsyncd.conf #服务器端
port=873
log file=/var/log/rsync.log
pid file=/var/run/rsyncd.pid
#address=192.168.0.10
max connections=10
timeout = 300
[webbak]
path=/tmp/www/wordpress
use chroot=true
read only=no
list=false
uid=root
gid=root
#auth users=test
#secrets file=/etc/rsyncd.passwd
hosts allow=192.168.1.109
#hosts deny = 0.0.0.0/32

echo "rsync --daemon" >>/etc/rc.local
#启动服务
rsync --daemon

2、安装Inotify-tools工具,实时触发rsync进行同步
两边机器都要做
安装inotify-tools
yum install -y make gcc gcc-c++
cd /mydata/download/
wget -c http://github.com/downloads/rvoicilas/inotify-tools/inotify-tools-3.14.tar.gz
tar zxvf inotify-tools-3.14.tar.gz
cd inotify-tools-3.14
mkdir -p /usr/local/inotify
./configure --prefix=/usr/local/inotify
make
make install
设置系统环境变量,添加软连接
echo "PATH=$PATH:/usr/local/inotify/bin" >>/etc/profile.d/inotify.sh
source /etc/profile.d/inotify.sh #使设置立即生效
echo "/usr/local/inotify/lib" >/etc/ld.so.conf.d/inotify.conf && ldconfig
ln -s /usr/local/inotify/include /usr/include/inotify
修改inotify默认参数(inotify默认内核参数值太小)
vi /etc/sysctl.conf
fs.inotify.max_queued_events=99999999
fs.inotify.max_user_watches=99999999
fs.inotify.max_user_instances=65535
/sbin/sysctl -p



客户端

3、安装配置sersync
cd /download
wget -c http://files.cnblogs.com/files/MYSQLZOUQI/sersync2.5.4_64bit_binary_stable_final.tar.gz
tar -zxvf sersync2.5.4_64bit_binary_stable_final.tar.gz
mv GNU-Linux-x86 /usr/local/sersync
vi /usr/local/sersync/confxml.xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<head version="2.5">
<host hostip="localhost" port="8008"></host>
<debug start="false"/>
<fileSystem xfs="false"/>
<filter start="false">
<exclude expression="(.*)\wp-config.php"></exclude>
<!-- <exclude expression="(.*)\.gz"></exclude>-->
<!-- <exclude expression="^info/*"></exclude>-->
</filter>
<inotify>
<delete start="true"/>
<createFolder start="true"/>
<createFile start="false"/>
<closeWrite start="true"/>
<moveFrom start="true"/>
<moveTo start="true"/>
<attrib start="true"/>
<modify start="true"/>
</inotify>

<sersync>
<localpath watch="/tmp/www/wordpress">
<remote ip="192.168.1.106" name="webbak"/>
<!--<remote ip="192.168.1.12" name="tongbu"/>-->
<!--<remote ip="192.168.1.13" name="tongbu"/>-->
</localpath>
<rsync>
<commonParams params="-az"/>
<auth start="false" users="root" passwordfile="/etc/rsync.pas"/>
<userDefinedPort start="false" port="874"/><!-- port=874 -->
<timeout start="false" time="100"/><!-- timeout=100 -->
<ssh start="false"/>
</rsync>
<failLog path="/tmp/sersync_fail_log.sh" timeToExecute="60"/><!--default every 60min execute once-->
<crontab start="true" schedule="720"><!--720mins-->
<crontabfilter start="true">
<exclude expression="wp-config.php"></exclude>
<!--<exclude expression="*.gz"></exclude>-->
<!--<exclude expression="info/*"></exclude>-->
</crontabfilter>
</crontab>

</sersync>
</head>

将命令添加进/etc/rc.local,以后重启系统以后才能正常同步
vi /etc/rc.local
/usr/local/sersync/sersync2 -d -r -o /usr/local/sersync/confxml.xml

先测试一下rsync同步是否正常
rsync -av /tmp/yum_save_tx-2015-12-31-13-13x5anWV.yumtx 192.168.1.106::webbak

4、脚本监控sersync
因为有的时候sersync脚本会自动关掉,因此需要写一个脚本自动的去检测该进程是否存在,不存在就启动,脚本内容如下:
vi /root/check_sersync.sh
#!/bin/bash
#Purpose: Check sersync whether it is alive
#Author: steven
SERSYNC="/usr/local/sersync/sersync2"
CONF_FILE="/usr/local/sersync/confxml.xml"
STATUS=$(ps aux |grep ‘sersync2‘|grep -v ‘grep‘|wc -l)
if [ $STATUS -eq 0 ];
then
$SERSYNC -d -r -o $CONF_FILE &
else
exit 0;
fi

脚本写好以后,添加到计划任务中去
crontab -e
*/1 * * * * /bin/sh /root/check_sersync.sh > /dev/null 2>&1

时间: 2024-10-08 11:13:26

Sersync实现触发式文件同步 替代inotify和rsync的相关文章

Sersync实现触发式文件同步

目录 1:序言 1 2:inotify 1 2.1:inotify简介 1 2.2:inotify可以监视的文件系统事件 1 3:rsync 1 3.1:rsync简介 1 3.2:Rsync特性 2 4:sersync 2 4-1:sersync简介 2 4-2:sersync优点 2 5:两种架构 2 5.1:inotify-tools + rsync 2 5.2:sersync + rsync 2 6:为什么要用rsync+sersync 2 7:具体操作: 3 7.1:实验环境 3 7.

使用sersync完成远程触发式文件同步

在做网站或者文件服务集群时,通常会用rsync + inotify的方式实现各服务器间的文件同步,而使用脚本实现同步的效率较为低下,因此,这里我将使用sersync实现这一功能. 1.Inotify简介 Inotify 是基于inode级别的文件系统监控技术,是一种强大的.细粒度的.异步的机制,它满足各种各样的文件监控需要,不仅限于安全和性能,内核要求2.6.13以上,inotify能监控非常多的文件系统事件,通过监控这些事件来监控文件是否发生变更,然后通过rsync来更新发生变更的文件,Ino

Rsync+lsync实现触发式实时同步

使用rsync+lsync实现触发式实时同步 服务器信息 centos6.5 主:192.168.5.4 搭建lsync 从:192.168.5.3 搭建rsync 1.1 从服务器设置 # yum -y install rsync xinetd # cp /etc/xinetd.d/rsync /etc/xinetd.d/rsync.blk # vim /etc/xinetd.d/rsync # default: off # description: The rsync server is a

Linux命令之文件同步、定时备份 -rsync,cron,crontab

一.rsync介绍(可忽略) Rsync(remote synchronize)是一个远程文件同步工具; Rsync使用"Rsync算法"来同步文件,该算法只传送两个文件的不同部分,因此速度相当快; Rsync是替代rcp的一个工具,目前由rsync.samba.org维护,因而rsync.conf文件的格式类似于samba的主配置文件; Rsync可通过rsh或ssh使用,也能以daemon模式运行,以daemon方式运行时,Rsync Server会打开一个873端口等待客户端连接

文件触发式实时同步 Rsync+Sersync Rsync+Inotify-tools

一.概述 1.Rsync+Sersync 是什么? 1)Sersync使用c++编写基于inotify开发的触发机制: 2)Sersync可以监控所监听的目录发生的变化(包括新建.修改.删除),具体到一个文件名或目录名,然后触发rsync同步,只同步发生改变的文件或目录.如果只是目录下的文件发生变化,则只会同步变化的文件而不会同步目录.只有目录本身发生变化的时候才会同步目录. 3)自带crontab功能,只需在 xml配置文件中开启,即可按您的要求,隔一段时间整体同步一次.无需再额外配置cron

sersync实现触发式同步

金山的一个居于inotify+rsync进行二次开发实现文件同步的小工具sersync,能够很方便的实现文件触发式同步 Inotify 是基于inode级别的文件系统监控技术,是一种强大的.细粒度的.异步的机制,它满足各种各样的文件监控需要,不仅限于安全和性能,内核要求2.6.13以上,inotify能监控非常多的文件系统事件,通过监控这些事件来监控文件是否发生变更,然后通过rsync来更新发生变更的文件 rsync,remote synchronize顾名思意就知道它是一款实现远程同步功能的软

使用rsync服务通过inotify实现触发式自动同步数据

  实验拓扑:HK36(Server 192.168.2.102)====HK46(Client 192.168.2.190)   实验要求:对HK46 /data/目录备份到HK36的/backup/下 (1)      rsync服务依赖于xinetd超级服务管理,首先安装xinetd服务 [[email protected] ~]# yum -y install xinetd (2)      进入rsync修改配置文件信息,将disable = yes改为no,重启服务,查看873端口是

采用 unison + inotify + rsync 实现文件触发式实时单向/双向/多向文件同步

项目有个新的需求,在多台APP服务器随机上传图片/资源文件,其中一台APP需要读取上传的图片,这样之前做的rsync+inotify的设置就无法应对了. 所以研究了下多向触发式实时同步机制,大家可以实验一下,如果有不妥的地方,请联系我修正,多谢了. 以下开始正题 一.     简介 Unison是Windows.Linux以及其他Unix平台下都可以使用的文件同步工具,它能使两个文件夹(本地或网络上的)保持内容的一致.Unison拥有与其它一些同步工具或文件系统的相同的特性,但也有自身的特点:

【惊雷】Linux下Rsync的文件同步的配置过程

Rsync的文件同步实现 一.rsync 简介 Rsync(remote synchronize)是一个远程数据同步工具,简要的概括就是主机于主机之间的文件目录数据的一个同步. 它的特性如下: 可以镜像保存整个目录树和文件系统. 可以很容易做到保持原来文件的权限.时间.软硬链接等等. 无须特殊权限即可安装. 快速:第一次同步时 rsync 会复制全部内容,但在下一次只传输修改过的文件.rsync 在传输数据的过程中可以实行压缩及解压缩操作,因此可以使用更少的带宽. 安全:可以使用scp.ssh等