unison+inotify实现文件实时双向同步部署步骤

unison+inotify实现文件同步 unison+inotify部署功能介绍unison安装inotify-tools安装配置ssh双机认证部署监控脚本 功能介绍 unison: Unison是一款跨windows/linux/MAC OS平台的文件同步工具,不仅支持本地对本地同步,也支持通过SSH、RSH和Socket等网络协议与远程主机进行同步。 Unison支持双向同步操作,即任何一端数据发生改变,都会更新到对端;若要实现实... 阅读详情

一.编译安装unison

unison各版本下载地址 http://www.seas.upenn.edu/~bcpierce/unison//download.html

unison编译器下载地址 http://caml.inria.fr/pub/distrib (版本至少3.0.7)


1.环境说明 (在其他地方部署时修改下IP与同步目录即可)

host1 192.168.42.241 同步目录 /root/test

host2 192.168.42.243 同步目录 /root/test


2. 安装Objective Caml compiler(若安装的unison的是二进制程序,则不用安装。因二进制程序版本都太老,这里选择编译安装)

[root@241 ~]# cd /usr/src/

[root@241 src]# wget http://caml.inria.fr/pub/distrib/ocaml-3.12/ocaml-3.12.0.tar.gz

[root@241 src]# tar xf ocaml-3.12.1+rc1.tar.gz

[root@241 src]# tar xf ocaml-3.12.0.tar.gz

[root@241 src]# cd ocaml-3.12.0

[root@241 ocaml-3.12.0]# ./configure

[root@241 ocaml-3.12.0]#  make world opt

[root@241 ocaml-3.12.0]#  make install


3.编译安装Unison

[root@241 ~]# wget http://www.seas.upenn.edu/~bcpierce/unison//download/releases/stable/unison-2.40.102.tar.gz

[root@241 src]# tar xf unison-2.40.102.tar.gz

[root@241 src]# cd unison-2.40.102

[root@241 unison-2.40.102]# make UISTYLE=text THREADS=true STATIC=true

[root@241 unison-2.40.102]# cp unison /usr/local/bin/ #将生成的二进制程序复杂到系统的PATH路径里

[root@241 unison-2.40.102]# scp unison root@192.168.42.243:/usr/local/bin/unison #将unison二进制程序复制到host2


二.配置双机ssh信任

[root@241 ~]# ssh-keygen

[root@243 ~]# ssh-keygen

[root@243 ~]# ssh-copy-id -i .ssh/id_rsa.pub root@192.168.42.241

[root@241 ~]# ssh-copy-id -i .ssh/id_rsa.pub root@192.168.42.243


三.unison配置

1.编辑unison配置文件

[root@241 ~]# vim .unison/default.prf


# Unison preferences file

#root = /root/test #两个root表示要同步的文件夹(下面的同步脚本定义了同步目录,所以这里注释掉,否则会冲突)

#root = ssh://192.168.42.243//root/test

#path = /root/test #两个path表示只同步指定的子目录及文件,而非整个目录

#path = /root/test

#ingnore = PATH test/txt #ingnore = Path 表示忽略/root/test 下面的test/txt

batch = true #表示全自动模式,接受默认动作

#maxthreads = 300

#repeat = 1

#retry = 3

owner = true #owner group perms表示保持原来的属主 属组 权限

group = true

perms = -1

fastcheck = true #true表示同步时通过文件的创建时间来比较两地文件 false表示比较两地文件的内容

rsync = false

#debug = verbose

sshargs = -C #表示使用ssh的压缩方式传输

xferbycopying = true

confirmbigdel = false #true表示当需要同步的两个目录一个为空时,unison将停止 false表示同步的某个目录为空时不会停止运转

log = true

logfile = /root/.unison/unison.log



#host2 配置文件一样

四.安装inotify

1.查看系统是否支持inotify

[root@241 ~]# ls -l /proc/sys/fs/inotify

total 0

-rw-r--r-- 1 root root 0 Nov 11 11:25 max_queued_events

-rw-r--r-- 1 root root 0 Nov 11 11:25 max_user_instances

-rw-r--r-- 1 root root 0 Nov 11 11:25 max_user_watches


2.安装inotify

[root@241 src]# tar xf inotify-tools-3.14.tar.gz

[root@241 src]# cd inotify-tools-3.14

[root@241 inotify-tools-3.14]# ./configure

[root@241 inotify-tools-3.14]# make && make install


echo 30000000 > /proc/sys/fs/inotify/max_user_watches  (注意:重启机器后此设置会消失,如果监控的文件数目不是特别多,可以不设置)

3.编写inotify实时监控脚本

[root@241 ~]# vim unison.sh


#!/bin/bash

DESTHOST=192.168.42.243

DESTHOSTDIR=/root/test

SRCDIR=/root/test

/usr/local/bin/inotifywait -mrq  --timefmt '%d/%m/%y %H:%M' --format '%T %w %f'  -e create,delete,modify,move $SRCDIR | while read line; do

/usr/local/bin/unison $SRCDIR ssh://$DESTHOST/$DESTHOSTDIR

done


chmod +x unison.sh


4.按同样方法在host2安装inotify和编写同步脚本


5.分别在host1 host2 让脚本运行于后台

[root@241 ~]# nohup ./unison.sh &

[root@243 ~]# nohup ./unison.sh &


本文出自 “运维人生” 博客,请务必保留此出处http://yangsc.blog.51cto.com/7051889/1580846

Unison双向同步原理与Ubuntu 16.04生产级备份实践 文件同步是运维与数据管理的基础能力,其核心在于解决多端状态一致性问题。传统单向工具如rsync依赖主从拓扑,难以应对本地与远程同时变更的现实场景;而Unison通过向量时钟(Vector Clock)实现无中心节点的双向状态协商,保障强一致性与冲突可审计性。该机制不依赖全局时间,而是为每个节点维护独立版本向量,精准定位最小公共祖先(LCA),从而支持断网续传、自动差异识别与安全回滚。在老旧但稳定的Ubuntu 16.04环境中,Unison 2.48.4凭借静态链接、SSH通道封装、glibc 2.23兼容 阅读详情

相关推荐

Ubuntu 18.04 + Unison 实现大目录双向安全同步

文件同步是数据管理的基础能力,其核心在于状态一致性而非简单复制。传统工具如 rsync 采用单向覆盖模型,在多端协同、网络不稳定或海量小文件场景下易引发元数据丢失与静默覆盖风险;而 Unison 基于双向状态向量与内容哈希比对,提供可验证的冲突协商机制,天然适配科研、影像等大目录(TB级、百万文件)备份需求。Ubuntu 18.04 凭借长期LTS支持、稳定版 OpenSSH 7.6p1 与 cronie 调度器,构成高可靠运行基座,尤其在 SSH 算法兼容性、inotify 事件响应及档案持久化方面表现优

weixin_34199764的博客 347

UNISON+inotify数据的双向实时同步

UNISON安装部署手册 操作系统:SUSE12 安装包:inotify-tools-3.13.tar.gz ocaml-4.02.0.tar.gz unison-2.48.4.tar.gz 主机:FH-UMP-PORTAL1 192.168.1.181 FH-UMP-PORTAL2 192.168.1.182 登录用户/密码:root/123456 配置文件...

dianmu9475的博客 443

simulink求解器选择的小tip

给出了simulink选择求解器的一种tip,与积分初值有关。

高能阿博特的博客 2055

linux命令介绍:文件同步工具Unison详解

Unison 是一个非常强大的文件同步工具,它可以跨多种操作系统(如 Linux、macOS 和 Windows)在本地或远程机器之间同步文件和目录。Unison 的设计旨在高效、安全地同步文件,尽量减少数据传输量。Unison 支持多种网络协议,包括 SSH、RSH 和直接 TCP/IP 连接。Unison是一个开源的远程同步复制软件,能确保两个文件夹(本地或网络上的)保持内容的一致性。Unison 是文件同步工具,适合个人和企业使用。适用于多种场景。合理配置和利用其丰富的选项,可实现高效、安全的数据同步

weixin_70208651的博客 3228

康耐视CogPMAlignTool模板匹配详解

康耐视CogPMAlignTool是一款基于边缘特征的模板匹配工具,适用于工业视觉检测。该工具提供PatMax、PatQuick、PatFlex等不同算法,分别对应高精度、快速匹配和柔性表面等应用场景。关键参数包括特征粒度(粗糙/精细)、边缘阈值、弹性范围等,支持旋转缩放匹配和极性忽略功能。工具操作流程包括图像采集、参数设置、模板训练和运行检测,通过调整查找概数、接收阈值等参数可优化识别效果。配套的卡尺工具(CogCaliperTool)通过一维投影和边缘筛选实现精准定位,适用于高精度尺寸测量场景。

2502_92473474的博客 1318

树莓派国内镜像源一键配置指南

本文提供树莓派国内镜像源一键配置指南,解决默认国外源访问缓慢问题。通过自动检测系统版本并支持清华、阿里云、中科大等主流镜像站选择,大幅提升软件更新与安装速度。包含详细的手动配置方法和常见问题排查,帮助用户快速完成树莓派换源优化。

tequila的博客 1376

服务器双向同步( 可实时 ) unison + inotify

一. Unison简介 Unison是Windows、Linux以及其他Unix平台下都可以使用的文件同步工具,它能使两个文件夹(本地或网络上的)保持内容的一致。1. 跨平台使用;对内核和用户权限没有特别要求; 2. Unison是双向的,它能自动处理两分拷贝中更新没有冲突的部分,有冲突的部分将会显示出来让用户选择更新策略; 3. 只要是能连通的两台主机,就可以运行unison,可以直接使...

weixin_30677073的博客 1366

​苹果开发者账号推送证书配置详细指南​

推送证书的配置是iOS应用实现消息推送的核心步骤。通过生成证书、配置描述文件、集成到服务器三大环节,开发者可快速为App启用APNs服务。建议优先使用更灵活的APNs Auth Key替代传统证书,以减少维护成本。确保拥有有效的苹果开发者账号(个人/公司账号),年费已缴纳。

2327

linux服务器之间的文件同步(双向同步unison+inotify)

在日常的运维工作中,需要保证文件的高可用性,以防单点带来的文件丢失。 根据场景不同,一般会有单向和双向同步两种方式。 1、双向同步:unison+inotify 用于启动切换的场景 2、单向同步:rsync+inotify 用于手工恢复的场景 大多数情况下,都用单向同步即可,如果有问题的话,运维认为手工恢复即可; 如果对恢复的实时性要求不叫高的话,可以用双向同步,出问题的时候,让系统自动切换先用起来,然后再人工维护,不影响正常使用。 我们来演示一下双向同步环境的搭建和配置。 1 Unison简介 Un.

shgh_2004的专栏 7431

UFS 功能描述:UFS boot

UFS 启动过程介绍:启动配置,启动代码下载过程和安全性

m0_51720747的博客 1601

ESP32+MAX7219二进制时钟设计与嵌入式时间映射实践

二进制时钟是嵌入式系统中数据表示与物理呈现深度耦合的典型范例,其核心在于将时间语义(年月日时分秒)解构为比特位,并通过LED点阵的空间权重布局实现直观识别。该设计依托RTC模块提供时间基准,依赖SPI协议完成微控制器与专用驱动芯片(如MAX7219)的可靠通信,涉及寄存器级配置、位图坐标变换、软硬件时序对齐等关键原理。技术价值体现在低资源占用下的高可读性人机交互,适用于教学演示、极客项目及嵌入式UI原型开发。本文聚焦ESP32平台在MicroPython环境下,结合MAX7219驱动8×8点阵实现高可靠性二

weixin_42160645的博客 301

unison + inotify 实现文件实时双向同步部署步骤

unison+inotify实现文件实时双向同步部署步骤一.Unison简介Unison是Windows、Linux以及其他Unix平台下都可以使用的文件同步工具,它能使两个文件夹(本地或网络上的)保持内容的一致。Unison拥有与其它一些同步工具或文件系统的相同的特性,但也有自身的特点:1.跨平台使用;2.对内核和用户权限没有特别要求;3.Unison是双向的,它能自动处理两分拷贝...

weixin_30375247的博客 1319

【GB28181】wvp-GB28181-pro部署安装教程(Ubuntu平台)

初始环境安装。

废人一枚的博客 5084

unison+inotify-tools实现双向实时同步

linux利用unison实现双向或多向实时同步以下内容是linux服务器中双向(多向)同步的部署过程,环境:服务器A:192.168.1.6,同步目录:/var/www服务器B:192.168.1.7,同步目录:/var/www安装unison首先安装ocaml,版本至少为3.07或更高下载地址:http://caml.inria.frtarxfocaml-3.10.2.t...

weixin_34183910的博客 212

【推荐100个unity插件之10】Unity Cinemachine最全的最详细的虚拟相机介绍,详细案例讲解,快速上手

相信很多同学都用过Unity的Cinemachine插件,使用它可以很方便地实现一些摄像机效果,比如摄像机追踪、推拉镜头、分镜等效果。Cinemachine的知识特别的多又很常用,本来是想做一期来讲一下的,结果搜索发现已经有人做过了,而且内容挺全的,但是内容可能比较啰嗦,还有部分没有补充,所以我就先转载下来,后续有时间再优化修改补充,觉得内容不错的,很欢迎大家去支持原作者。

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 2万+

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Linux unison 效率,linux inotify+unison双向同步环境部署

最近做的一个项目,项目上线 ,代码部署在,做了LVS负载均衡的两台web服务器,那么问题来了,怎么样保证两台服务器的代码文件和资源文件实时同步呢?在liux下做文件同步,通常有如下几种方式:1、nfs实现web数据共享nfs能实现数据同步是通过NAS(网络附加存储),在服务器上共享一个文件,且服务器需要设置文件系统的权限和配置文件设置的权限,权限两者之间取交集,然后客户端把共享的文件挂载到本地,客...

weixin_29907111的博客 516

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

centos Unison+Inotify双向同步

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33853827的博客 219

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Linux unison 效率,Linux下inotify+unison双向同步环境部署

在Linux下使用unison+inotify实现web数据双向同步,当其中一台服务器宕机,也不会影响web的访问。(ps:之前一直喜欢nfs,配置非常简单,但是其有个致命的缺点就是其中一台web服务挂掉之后,会直接导致web页面无法访问)。环境部署,有如下两台服务器需要做双向同步192.168.10.1是server1,192.168.10.2是server2第一步,保证两台服务器之间可以通过s...

weixin_35636570的博客 298

Linux unison 效率,linux利用unison实现双向或多向实时同步

以下内容是linux服务器中双向(多向)同步的部署过程,环境:服务器A:192.168.1.6,同步目录:/var/www服务器B:192.168.1.7,同步目录:/var/www安装unison首先安装ocaml,版本至少为3.07或更高下载地址:http://caml.inria.frtar xf ocaml-3.10.2.tar.gzcd ocaml-3.10.2./configurema...

weixin_32098599的博客 234

Unison+inotify-tools实现Ubuntu主机间的多机触发式双向同步

概述     最近在做一个web项目,要求做成群集形式。方案是nginx+tomcat+memcached_session_manager,部署环境是Ubuntu 10.04 Server LTS。项目快完成时发现自己忽略了文件同步问题,于是立即开动google,满世界寻找解决方案。   这个项目有很多需要用户上传的文件,比如用户的形象照片,视频文件等。在群集中,用户上传的文件往往被...

stephen830 407

使用unison实现文件夹双向同步

在部署双机热备的情况下,要保证两台热备机器上特定目录的文件一致,需要使用文件夹双向同步功能,unison和inotify配合使用,可以实现此效果。 操作系统 CentOS6.4 64位 两台机器地址分别为192.168.2.20 和 192.168.2.71 1、下载unison安装包 http://www.seas.upenn.edu/~bcpierce/unison//downloa...

jshagw的博客 5269

unison+inotify-tools触发式双向自动同步

原文地址:https://www.cnblogs.com/cuimeng/p/5060619.html 双向实时数据同步部署 首先添加服务器ssh信任,即免秘钥登陆 Web1:192.168.10.36 Web2:192.168.10.37 分别在web1和web2上执行以下命令 mkdir ~/.ssh chmod 700 ~/.ssh 生成RSA密钥 ssh-keygen -t rsa (然后...

goTech 456

inotify+unison双向同步环境部署

在网上搜寻了很多方案,在liux下做文件同步,有如下几种方式:1、nfs实现web数据共享2、rsync +inotify实现web数据同步3、rsync+sersync更快更节约资源实现web数据同步4、unison+inotify实现web数据双向同步在这里详细介绍第四种方案,前几种都有些各自的不足。只有第四种方案支持双向实时同步,且当其中一台服务器宕机,也不会影响web...

weixin_34292924的博客 374
上一篇: Cacti+Nagios监控平台完美整合
下一篇: javascript中单体模式的实现
honckly
博客等级 码龄20年 3粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值