引言

在某种特定的情况下需要在多个Linux服务器上做指定文件文件夹的实时同步,一个服务器修改了文件其它服务器的文件能保持一致.

准备环境

Centos服务器1:139.199.152.84

Centos服务器2:111.230.103.208

指定同步的文件夹:/usr/Tomcat/image与/usr/Tomcat/upload 目录两个服务器都创建好目录

目录.png

配置步骤

安装Objective Caml compiler

服务器1与服务器2都要安装

#yum install make gcc gcc-c++

#cd/tmp

#wget http://caml.inria.fr/pub/distrib/ocaml-4.03/ocaml-4.03.0.tar.gz

#tar -zxvf ocaml-4.03.0.tar.gz

#cd ocaml-4.03.0

#./configure

#make world opt

#make install

安装Unison

服务器1与服务器2都要安装

#yum install ctags-etags

#cd/tmp

#wget http://www.seas.upenn.edu/~bcpierce/unison//download/releases/stable/unison-2.48.4.tar.gz

#mkdir unison-2.48.4 && cd unison-2.48.4

#tar -zxvf /tmp/unison-2.48.4.tar.gz

#cd src

#make UISTYLE=text THREADS=true

#cp unison /usr/local/bin/

//有版本信息出现则安装成功

#unison -version

安装inotfy

服务器1与服务器2同样安装

#yum -y install inotify-tools

配置双机SSH信任

两台服务器先安装一下rsync

#yum install rsync -y

ssh信任.png

测试是否成功只要不用输入密码说明配置成功

服务器1测试

#ssh -p 22 111.230.103.208 date

服务器2测试

#ssh -p 22 139.199.152.84 date

测试SSH信任.png

在服务器139.199.152.84配置

#ssh-keygen

//连续按三次空格

# cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys

//给权限

# chmod 700 ~/.ssh

# chmod 600 ~/.ssh/authorized_keys

//需要输入一次密码

# rsync -avz /root/.ssh/authorized_keys root@111.230.103.208:/root/.ssh/authorized_keys

在服务器111.230.103.208配置

#ssh-keygen

//连续按三次空格

# cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys

//给权限

# chmod 700 ~/.ssh

# chmod 600 ~/.ssh/authorized_keys

//需要输入一次密码

# rsync -avz /root/.ssh/authorized_keys root@139.199.152.84:/root/.ssh/authorized_keys

配置双机同步

在服务器139.199.152.84配置

//先进入/tem/uniso/src/目录

#mkdir -p /root/.unison/

#vim /root/.unison/default.prf

//配置的内容

#Unison preferences file

//root是配置的两个目录本地和远程,注意远程IP地址后面是两个//

root = /usr/Tomcat/

root = ssh://root@111.230.103.208//usr/Tomcat/

//path 指定的文件夹如果是Tomcat整个目录不用指定path

path = upload

path = image

#force =

#ignore =

batch = true

maxthreads = 300

#repeat = 1

#retry = 3

owner = true

group = true

//使用ssh压缩传输方式

perms = -1

fastcheck = false

//true表示通过文件创建时间来比较两地文件,若为false比较文件的内容

rsync = false

//保持同步过来保持读写权限

sshargs = -C

xferbycopying = true

//默认值是true,表示当需要同步的两个目录一个为空时,unison将停止,这里设置为false,即便为空unison也不会停止运转

confirmbigdel = false

log = true

logfile = /root/.unison/unison.log

服务器1.png

在服务器111.230.103.208配置

//先进入/tem/uniso/src/目录

#mkdir -p /root/.unison/

#vim /root/.unison/default.prf

//配置的内容

#Unison preferences file

//root是配置的两个目录本地和远程,注意远程IP地址后面是两个//

root = /usr/Tomcat/

root = ssh://root@139.199.152.84//usr/Tomcat/

//path 指定的文件夹如果是Tomcat整个目录不用指定path

path = upload

path = image

#force =

#ignore =

batch = true

maxthreads = 300

#repeat = 1

#retry = 3

owner = true

group = true

//使用ssh压缩传输方式

perms = -1

fastcheck = false

//true表示通过文件创建时间来比较两地文件,若为false比较文件的内容

rsync = false

//保持同步过来保持读写权限

sshargs = -C

xferbycopying = true

//默认值是true,表示当需要同步的两个目录一个为空时,unison将停止,这里设置为false,即便为空unison也不会停止运转

confirmbigdel = false

log = true

logfile = /root/.unison/unison.log

服务器2.png

创建脚本文件

两个服务器都要创建.sh脚本

//到usr目录下创建

#cd usr/

#vim unison.sh

//内容

#/bin/bash

src="/usr/Tomcat/"

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

/usr/local/bin/unison

echo -n "$(date +%F-%T) $line" >> /var/log/inotify.log

done

//执行脚本

#sh unison.sh

脚本编写.png

//让脚本后台执行

#chmod +x unison.sh

#nohup ./unison.sh >/dev/null 2>&1 &

完成

从服务器1 upload中添加一个文件刷新服务器2的upload看是不是同步过去了

upload.png

检查image文件夹是否可以同步

image文件.png

检查nosynchro文件夹是否屏蔽了同步

image.png

多服务器实时同步思路

image.png

Linux unison 效率,Linux中inotify+unison实现数据双向(多向)实时同步相关推荐

  1. 利用ssh+rsync+inotify实现数据的异地实时同步

    在服务器中,通常结合计划任务.shell脚本来执行本地备份.为了进一步提高备份的可靠性,使用异地备份也是非常重要的,利用rsync工具,可以实现快速.高效的异地备份.本篇博客将配置rsync+cron ...

  2. Linux 查看tcp 请求 中 的各个 状态 数据 ,如timewait

    netstat -n | awk '/^tcp/ {++state[$NF]} END {for(key in state) print key,"\t",state[key]}' ...

  3. linux libpcap 效率,Linux ubuntu PF_RING+libpcap 极速捕获千兆网数据包,不丢包

    本文转自:http://blog.chinaunix.net/uid-23225855-id-3228867.html 上一篇文章讲到了,尤其在千兆网的条件下,大量的丢包,网上搜索好久,大概都是PF_ ...

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

    linux利用unison实现双向或多向实时同步 以下内容是linux服务器中双向(多向)同步的部署过程, 环境: 服务器A:192.168.1.6,同步目录:/var/www 服务器B:192.16 ...

  5. linux时间自动同步参数详解,综合架构实时同步详解

    day35 综合架构实时同步 课程介绍: 1.实时同步原理概念 2.实现实时同步方式 3.实现实时同步方式 1)利用脚本实现实时同步 2)利用软件实现实时同步 知识回顾 全网备份项目思路: 1.对工作 ...

  6. RedHat Linux下利用sersync进行实时同步数据

    拓扑图如下: 可以有多个目标服务器,本机同步也可以(要同时开sersync服务和rsync守护进程) 需求: 1.源服务器上 要备份的是/data/bookfm/doc/book 目录包括子目录下的o ...

  7. inotify+rsync实现实时同步

    1.1 什么是实时同步:如何实现实时同步 要利用监控服务(inotify),监控同步数据服务器目录中信息的变化 发现目录中数据产生变化,就利用rsync服务推送到备份服务器上 1.2 实现实时同步的方 ...

  8. rsync+inotify实现文件增量实时同步

    rsync+inotify实现文件增量实时同步 项目环境 防火墙{项目环境,不是必要条件} 项目需求 一.rsync安装部署 1.检查是否安装rsync 2.测试系统rsync命令 3.新建配置文件 ...

  9. Linux使用inotify+unison实现数据、静态资源双向(多向)实时同步

    在特定的情况下需要在多个Linux服务器上做指定文件文件夹的实时同步,一个服务器修改了文件其它服务器的文件能保持一致.本博客非常适用于需要在两台.多台linux服务器做静态资源同步的同学,整个过程简单 ...

  10. 用Unison+inotify实现数据的双向实时同步

    一.Unison简介Unison是windows和unix平台下都可以使用的文件同步工具,它能使两个文件夹(本地或网络上的)保持内容的一致.unison拥有其它一些同步工具或文件系统的相同特性,但也有 ...

最新文章

  1. 阴差阳错2019-12-13
  2. 更便捷:阿里云DCDN离线日志转存全新升级
  3. 岛屿数量—leetcode200
  4. 使用pip安装BeautifulSoup4模块
  5. switch和if的比较
  6. Ocelot中使用Butterfly实践
  7. 沙洋有几个微服务群_集群 分布式 微服务
  8. 专题导读:大数据异构并行系统
  9. python开发环境有哪些_python编程需要什么环境
  10. tcmalloc编译
  11. mysql create database 语法_MySQL中CREATE DATABASE语法总结
  12. 学习使用Visual studio 时碰到的坑
  13. 如何去除图片连接的边框线
  14. Sturts2【四】 StrutsPrepareAndExecuteFilter源码分析二
  15. python代替按键精灵 游戏内失灵_python游戏脚本之调用按键精灵插件模拟输入(二)...
  16. eclipse4.6安装tomcate插件 Eclipse4.6(neno)配置Tomcat插件的两种方式
  17. 李宏毅老师《机器学习》课程笔记-3卷积神经网络
  18. RK3399 Android7.1电脑端adb devices检测不到设备
  19. LU分解求线性方程组的解
  20. 【转】 Vitalik:去中心化的意涵

热门文章

  1. 5G消息标准版——富媒体消息,打造场景信息沉浸式体验
  2. win10怎么更新到1809正式版 升级windows10方法
  3. 解决azkaban使用腾讯企业邮箱发邮件失败问题
  4. PCB生成BOM表、网络表添加logo并且输出为Gerber文件
  5. 港股通换汇、红利、交易费用、资金清算规则
  6. SpringBoot的报错找不到Mapper(解决:required a bean of type com.xxx.mapper.UserMapper that could not be found)
  7. 模拟人生4修改服务器,模拟人生4常用秘籍与修改技巧心得
  8. Flickr 网站架构分析(转)
  9. Kafka配置kerberos安全认证
  10. Windows如何安装Clouda