利用unison+inotify 实现数据双向实时同步


利用unison+inotify 实现数据双向实时同步

环境:Centos 6.5 64位

server1 :192.168.1.201

server2 :192.168.1.250

需求软件:ocaml unison inotify

我这里全是使用yum安装的,若是喜欢使用源码编译安装的可以官网下载源码包。

yum install ocaml unison inotify

第一步:保证两台服务器之间可以通过ssh无密码访问,为了安全,需要创建一个普通用户:

两边执行的步骤一样:

useradd unison

passwd unison

su - unison

ssh-keygen -t rsa (直接三次回车即可)

mkdir .ssh

scp .ssh/id_rsa.pub 192.168.1.250:/home/unison/.ssh/authrized_keys

scp .ssh/id_rsa.pub 192.168.1.201:/home/unison/.ssh/authrized_keys

chmod 600 .ssh

第二步:创建shell脚本来执行同步

在server1 上

vim /home/unison/inotify.sh

#! /bin/bash

ip2="192.168.1.250"

src2="/home/unison/test"

dst2="/home/unison/test"

/usr/bin/inotifywait -mrq -e create,delete,modify,move $src2 | while read line; do

/usr/bin/unison -batch $src2 ssh://$ip2//$dst2

echo -n "$line" >> /home/unison/inotify.log

echo `date| cut -d ‘ ‘ -f1-4` >> /home/unison/inotify.log

done

在server2 上创建脚本:


#! /bin/bash

ip1="192.168.1.201"

src1="/home/unison/test"

dst1="/home/unison/test"

/usr/bin/inotifywait -mrq -e create,delete,modify,move $src1 | while read line; do

/usr/bin/unison -batch $src1 ssh://$ip1//$dst1

echo -n "$line" >> /home/unison/inotify.log

echo `date| cut -d ‘ ‘ -f1-4` >> /home/unison/inotify.log

done

最后分别在两台服务器上执行脚本即可,

若想开机启动,可以加入到/etc/rc.d/rc.local中。

时间: 2024-12-10 19:03:50

利用unison+inotify 实现数据双向实时同步的相关文章

rsync+inotify实现数据的实时同步

一,简介: 1. rsync是类unix系统下的数据镜像备份工具--remote sync.一款快速增量备份工具 Remote Sync,远程同步 支持本地复制,或者与其他SSH.rsync主机同步.与传统的cp.tar备份方式相比,rsync具有安全性高.备份迅速.支持增量备份等优点,通过rsync可以解决对实时性要求不高的数据备份需求,例如定期的备份文件服务器数据到远端服务器,对本地磁盘定期做数据镜像等.随着应用系统规模的不断扩大,对数据的安全性和可靠性也提出的更好的要求,rsync在高端业

rsync+inotify实现数据单向实时同步

主服务器端,向从服务器端实时同步数据 master端IP地址:192.168.1.39(node1) slave端IP地址:192.168.1.40 (node2) 一.配置从服务器 在从服务器安装rsync,创建并配置rsync文件. [[email protected] ~]# yum install -y rsync hosts allow = 192.168.1.39 hosts deny = * list = true uid = root gid = root pid file = 

利用rsync+inotify实现数据实时同步脚本文件

将代码放在Server端,实现其它web服务器同步.首先创建rsync.shell,rsync.shell代码如下: #!/bin/bash host1=133.96.7.100 host2=133.96.7.101 host3=133.96.7.102 src=/data/www/ dst1=web1 dst2=web2 dst3=web3 user1=web1 user2=web2 user3=web3 /usr/local/inotify/bin/inotifywait -mrq --ti

利用rsync+inotify实现数据同步

利用rsync+inotify实现数据同步 一.rsync概念: rsync是Linux系统下文件同步可数据传输的工具,采用rsync算法使客户机与服务器,主服务器与 备份服务器数据同步.rsync也能实现中断后恢复传输.rsync支持增量备份. 二.rsync的模式: 1.本地模式. 2.远程shell模式 3.查询模式 4.C/S模式 安装rsync: tar xvf rsync-3.0.9.tar.gz cd rsync-3.0.9 ./configure make && make

20190308 samba服务、inotify和rsync实现实时同步、防火墙

Samba服务[root@centos7 ~]#yum install samba[root@centos7 ~]#systemctl start smb[root@centos7 ~]#ss -ntluNetid State Recv-Q Send-Q Local Address:Port Peer Address:Port tcp LISTEN 0 50 :139 : tcp LISTEN 0 50 :445 端口已开启 : 可以做共享了. 主配置文件:/etc/samba/smb.conf

数据的实时同步

一.两主机间数据的实时同步 1.同步原理 利用监控服务(inotify),监控同步数据服务器目录中信息的变化发现目录中数据产生变化,就利用rsync服务推送到备份服务器上 2.实现方式 inotify+rsync方式实现数据同步sersync 在inotify 软件基础上进行开发的,功能更加强大 3.inotify 异步的文件系统时间监控机制,利用事件驱动机制,而无须通过诸如cron等的轮询机制来获取事件,linux内核从2.6.13起支持 inotify,通过inotify可以监控文件系统中添

rsync+inotify 实现数据的实时备份

我这个人写一些东西难免要发一番感慨,今天做rsync+inotify实现实时备份,做了好长时间没做出来,这段时间我看了好多博文还有一些视频,但自己做的时候还是没做出来,非常郁闷,就拿起书慢慢的看起来,最终我把思路整理好,又重新试验了一遍终于成功了.是的,你百分之九十的时间在实践,而剩下百分之十的时间才能到达成功,坚持加再看一遍很重要. 我先整理一下大致思路,如有时间,我再整理完整的文档出来. 1.先在两台主机里面安装rsync. 2.在服务节点上配置rsync. 3.在内容发布节点上安装inot

rsync+inotify 实现服务器文件实时同步

rsync+inotify 实现服务器文件实时同步 操作系统:CentOS 6.X 源服务器:192.168.80.132 目标服务器:192.168.80.128 目的:把源服务器上/data/app目录实时同步到目标服务器的/data/app下 具体操作: 第一部分:在目标服务器192.168.80.128上操作 一.在目标服务器安装Rsync服务端 1.关闭SELINUX vi /etc/selinux/config #SELINUX=enforcing #SELINUXTYPE=targ

利用动态图层实现数据的实时显示

转自原文 利用动态图层实现数据的实时显示 (ArcEngine IDynamiclayer) 说明:最近一个项目用到这方面知识,文章主要来至网络,后期会加入自己的开发心得.(以下的代码实例中,地图看样子是采用ADF开发)    1.1 前言 不刷新地图而能让数据实时显示,这在ArcGIS中已经不在是一个困扰我们的难题,在ArcGIS Engine的开发过程中,每一次更新数据后都需要刷新才能,更改大量数据并不断的刷新,让用户在静静的等待,这不是很痛苦吗?为此ArcGIS提供了一个动态图层,专门用于