unison 双向镜像同步

unison 双向镜像同步   需要 ocaml 依赖工具(3.0.7)

而且需要机器ssh双向互信

ssh 开启互信 # vi in.sh  直接执行 in.sh 就可以了

mkdir ~/.ssh
chmod 700 .ssh/
/usr/bin/ssh-keygen -t rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

然后拷贝  .ssh/authorized_keys 中秘钥到各自的 .ssh/authorized_keys 文件中。

这样都可以进行无密码验证登陆。

示例:ssh -p 2233 [email protected]172.16.2.126

下载安装

wget http://www.seas.upenn.edu/~bcpierce/unison//download/releases/unison-2.32.52/unison-2.32.52.tar.gz
wget http://caml.inria.fr/pub/distrib/ocaml-3.10/ocaml-3.10.2.tar.gz
解压缩 编译
tar -xf ocaml-3.10.2.tar.gz
mv ocaml-3.10.2 /usr/local/ocaml
/usr/local/ocaml/
./configure
make world opt
make install
tar -xf unison-2.32.52.tar.gz
mv unison-2.32.52 /usr/local/unison
cd ../unison/
make UISTYLE=text
cp unison /usr/local/bin
拷贝执行文件到 系统默认执行目录
cp unison /usr/local/bin

配置同步策略文件 test.prf 测试;

default.prf   默认在 /root/.unison/default.prf 

(默认同步策略文件是 default.prf  ;直接执行 unison 命令 默认是加载 default.prf )

[[email protected] ~]# vi test.prf

root = /data/wwwroot/img
root = ssh://[email protected]//data/wwwroot/upload
# path = upload
# 指定同步目录
# path = log
# igonre =
# 排除目录
batch = true
owner = true
group = true
perms = -1
maxthreads = 100
# 最大线程
fastcheck = true
# true 是通过时间同步
fastcheck = false
# false 通过内容
rsync = false
sshargs = -C
xferbycopying = true
confirmbigdel = false
log = true
logfile = /var/log/unison/unison.log# 日记记录文件

同步执行 

直接执行  unison test  本机和126 便可以进行目录同步

注意如果单方服务进行新增删除,则也会进行同步删除。

定时同步:

cat 1.sh

#!/bin/bash
# unison /root/.unison/test.prf
/usr/local/bin/unison

添加定时任务  每5秒进行同步
crontab -e
# * * * * * sleep 5; sh /opt/1.sh &> /dev/null

原文地址:https://www.cnblogs.com/sharesdk/p/11141783.html

时间: 2024-11-08 12:30:50

unison 双向镜像同步的相关文章

Rsync+unison双向文件同步

1.配置RSYNC服务器的同步源: 基于SSH同步源 rsync -avz /server/rsyncd/*  [email protected]:/client/rsyncd 基于RSYNC同步源 /etc/rsyncd.conf address = 172.16.23.203 port 873 pid file = /var/run/rsyncd.pid lock file = /var/run/rsync.lock log file = /var/log/rsyncd.log read o

unison双向同步工具使用

unison简介 rsync数据镜像方式同步是单项的,客户端只保持与服务端同步,而客户端新增或删除一些文件时,并不会同步到服务器端.而unison则可以完成双向同步,任何一端数据发生改变,都会更新到对应端.unison采用OCaml语言进行开发,通过基于rsync算法对两端文件进行比较,将两端文件更新到一致状态 unison特性 跨平台 双向同步,自动更新两份副本中没有冲突的部分,有冲突的部分由用户选择更新策略 支持增量同步,每次同步完成后会记录文件状态,下次同步时,以上次的状态为起点开始同步

unison 双向同步

两台主机,一台本地主机ip:192.168.200.36   ,一台远程主机ip:192.168.200.28 在36主机和28主机上安装unison-full软件包cd 到unison-full软件包目录下安装 rpm -ivh unison-2.40.63-1.el6.rfx.86_64\\(11).rpm 在36主机上生成密钥证书  ssh-keygen -d  回车直至密钥生成 把公共密钥发给远程客户端 ssh -copy -id -i /root/.ssh/id_dsa.pub. [e

inotify+unison双向同步环境部署

在网上搜寻了很多方案,在liux下做文件同步,有如下几种方式: 1.nfs实现web数据共享 2.rsync +inotify实现web数据同步 3.rsync+sersync更快更节约资源实现web数据同步 4.unison+inotify实现web数据双向同步 在这里详细介绍第四种方案,前几种都有些各自的不足.只有第四种方案支持双向实时同步,且当其中一台服务器宕机,也不会影响web的访问.(ps:之前一直喜欢nfs,配置非常简单,但是其有个致命的缺点就是其中一台web服务挂掉之后,会直接导致

CentOS 6.5 部署Unison双向同步服务

CentOS 6.5 部署Unison双向同步服务 环境介绍: 服务器 IP Server1 192.168.30.131 Server2 192.168.30.132       1.添加主机互信: a.添加host文件(在Server1.Server2分别操作): [[email protected] ~]#echo -e "192.168.30.131 Server1\n192.168.30.132 Server2" >> /etc/hosts b.更改主机名(在Se

rsync unison+inotify双向实时同步

rsync多线程同步 A:文件服务器 ip:10.10.1.10 B:备份服务器 ip:10.10.1.11 1.在B服务器上安装rsync软件 tar xzvf rsync-3.1.0.tar.gz cd rsync-3.1.0 ./configure make make install 2.配置双机ssh信任 在两台服务器的root目录下创建.ssh目录并设置正确的权限 mkdir ~/.ssh chmod 700 ~/.ssh 使用ssh-keygen命令生成SSH协议的RSA密钥 ssh

利用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+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 配置文件:/root/.unison/default.prf Unison双向同步基本原理是:假如有A B两个文件夹,A文件夹把自己的改

csync+lsync 实时双向批量同步小文件

cysnc+lsync配置安装 环境 ubuntu 12.04 1) 两台机器安装配置: apt-get install xinetd csync2 lsyncd     cat /etc/xinetd.d/csync2                  service csync2             {                 disable = no                 port = 30865                 socket_type = strea