需求:将本地192.168.1.10上的/data/wwwroot目录同步到

1、来源服务器上安装rsync、inotify-tools

yum -y install rsync
yum -y install inotify-tools

2、新建同步脚本(inotify_bak.sh)

#!/bin/bash
src=/data/wwwroot/
des1=web1
des2=web2
des3=web3
host1=192.168.1.12
host2=192.168.1.13
host3=192.168.1.14
user1=web
user2=web
user3=web
/usr/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w %f' -e modify,delete,create,attrib $src | while read file DATE TIME DIR;
do
/usr/local/rsync/bin/rsync -vzrtopg --delete --exclude-from=/etc/exclude.txt --progress $src $user1@$host1::$des1 --password-file=/etc/web.passwd
/usr/local/rsync/bin/rsync -vzrtopg --delete --exclude-from=/etc/exclude.txt --progress $src $user2@$host2::$des2 --password-file=/etc/web.passwd
/usr/local/rsync/bin/rsync -vzrtopg --delete --exclude-from=/etc/exclude.txt --progress $src $user3@$host3::$des3 --password-file=/etc/web.passwd
echo " ${file} was rsynced" >>/data/logs/rsync/rsync.log 2>&1
done

  上面的rsync和 inotifywait  的路径根据实际安装情况而定

  注意: 这里的 web 是在目标服务器/etc/rsyncd.conf里配置的模块名称:[web] (后面配置目标服务器会讲到)
  赋予执行权限: chmod +x  inotify_bak.sh

  新增密码文件:touch /etc/web.passwd 内容为密码 设置权限600
  新增排除文件:touch /etc/exclude.txt 内容为不需要同步的目录或者文件 (也可以实时--include-from=只同步那些目录或者文件) 
  例如:
    logs/
    rubbish/

3、目标服务器配置(需要同步的服务器)

  安装rsync 和 xinetd 

yum -y install  rsync xinetd
#安装后需要新建配置文件:
touch /etc/rsyncd.conf

  修改rsyncd内容:

#Global Settings 全局配置
uid = root
gid = root
use chroot = no
max connections = 5
timeout = 600
pid file = /var/run/rsyncd.pid
lockfile = /var/run/rsyncd.lock
log file = /var/log/rsyncd.log
#模块配置
[web1]
path = /data/wwwroot/
ignore errors = yes
read only = no
write only = no
hosts allow = 192.168.1.10
hosts deny = *
list = yes
uid = root
gid = root
auth users = web
secrets file = /etc/web.passwd

  这里的配置的web1和users就是inotify_bak.sh里面的dest1和user1的值

  新增密码文件:内容 用户名:密码 设置权限600  例如:web:123456

  touch /etc/web.passwd

  注意:这里的密码要跟来源服务器那台的密码文件的密码一样
  其他两台目标服务器也是同样的配置,然后都创建/data/wwwroot目录

4、启动运行

   目标服务器:先启动rsync后台服务: /usr/bin/rsync --daemon

     来源服务器: nohup inotify_bak.sh &  放入后台执行 

现在可以试试在来源服务器的/data/wwwroot目录里面新建一个文件,看是否会实时同步到其他三台。

linux使用rsync、inotify-tools实现多台服务器文件实时同步的更多相关文章

  1. linux下两台服务器文件实时同步方案设计和实现

    inux下两台服务器文件实时同步方案设计和实现 假设有如下需求: 假设两个服务器: 192.168.0.1 源服务器  有目录 /opt/test/ 192.168.0.2 目标服务器  有目录 /o ...

  2. Centos 6.5 rsync+inotify 两台服务器文件实时同步

    rsync和inotify是什么我这里就不在介绍了,有专门的文章介绍这两个工具. 1.两台服务器IP地址分别为: 源服务器:192.168.1.2 目标服务器:192.168.1.3 @todo:从源 ...

  3. linux下两台服务器文件实时同步方案实现-乾颐堂

    假设有如下需求: 假设两个服务器: 192.168.0.1 源服务器  有目录 /opt/test/ 192.168.0.2 目标服务器  有目录 /opt/bak/test/ 实现的目的就是保持这两 ...

  4. sersync+rsync实现服务器文件实时同步

    sersync+rsync实现服务器文件实时同步 一.为什么要用rsync+sersync架构? 1.sersync是基于inotify开发的,类似于inotify-tools的工具 2.sersyn ...

  5. (转)Linux下通过rsync与inotify(异步文件系统事件监控机制)实现文件实时同步

    Linux下通过rsync与inotify(异步文件系统事件监控机制)实现文件实时同步原文:http://www.summerspacestation.com/linux%E4%B8%8B%E9%80 ...

  6. linux系统中rsync+inotify实现服务器之间文件实时同步

    最近需要对服务器上的文件实施动态备份,我又不想每次都手动来进行备份,在网上找了挺多资料,发现使用rsync就可以实现,如果想要实现实时同步,还可以使用rsync+inotify组合,本文就是以组合方式 ...

  7. linux设置rsync+inotify实时同步文件

    linux设置rsync+inotify实时同步文件   应用场景: 同步接收方:test01 接收目录:/opt/software/test/a/ 同步发起方:test02 同步目录:/opt/so ...

  8. rsync+inotify 实现服务器之间目录文件实时同步(转)

    软件简介: 1.rsync 与传统的 cp. tar 备份方式相比,rsync 具有安全性高.备份迅速.支持增量备份等优点,通过 rsync 可 以解决对实时性要求不高的数据备份需求,例如定期的备份文 ...

  9. centos6.5 rsync+inotify实现服务器之间文件实时同步

    1. rsync的优点与不足 与传统的cp.tar备份方式相比,rsync具有安全性高.备份迅速.支持增量备份等优点,通过rsync可以解决对实时性要求不高的数据备份需求,例如定期的备份文件服务器数据 ...

随机推荐

  1. 微信小程序文档里看不到的小Tips

    前几天折腾了下.然后列出一些实验结果,供大家参考. 0. 使用开发工具模拟的和真机差异还是比较大的.也建议大家还是真机调试比较靠谱. 1. WXML(HTML) 1.1 小程序的WXML没有HTML的 ...

  2. 398. Random Pick Index随机pick函数

    [抄题]: Given an array of integers with possible duplicates, randomly output the index of a given targ ...

  3. jQuery开发者眼中的AngularJS

    文章来源:http://blog.jobbole.com/76265/ AngualrJS是一个很贴心的web应用框架.它有很不错的官方文档和示例:经过在现实环境中的测试著名的TodoMVC proj ...

  4. Java TreeMap的排序

    TreeMap 和 HashMap 用法大致相同,但实际需求中,我们需要把一些数据进行排序:以前在项目中,从数据库查询出来的数据放在List中,顺序都还是对的,但放在HashMap中,顺序就完全乱了. ...

  5. Zedboard学习(一):移植Ubuntu桌面操作系统 标签: ubuntu移植zedboardFPGA 2017-07-04 21:53 26人阅读

    环境准备: 首先,需要的肯定是Ubuntu操作系统.可以在自己的电脑上安装物理机,也可以是虚拟机下运行的.我的是在Vmware下运行的Ubuntu14.04 32位操作系统. 由于zedboard上的 ...

  6. c# dynamic的属性是个变量

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  7. 导入excel精华版

    //须引入 NPOI, NPOI.OOXML, NPOI.Openxml4Net, NPOI.OpenxmlFormats等程序集 自己去下载吧 NPOI组件很好用不可能下不到自己去吧,通常去百度网盘 ...

  8. 实践作业4---DAY5阶段四。

    阶段四:分析 这一阶段工作就是分析博客园与csdn优点缺点: 根据邹欣老师在<现代软件工程>一书中的描述: 程序 = 算法 + 数据结构: 软件 = 程序 + 软件工程(软件服务还有数据, ...

  9. Yii2.0 多语言设置(高级版配置方法) - 新的方法

    1.设置默认语言:在mail.php配置文件加上:'language'=>'zh_CN'; 2.多语言切换 (我这边是在site控制器里面操作的所以用的'/site/language') htm ...

  10. 【转载】mysql中timestamp,datetime,int类型的区别与优劣

    转载来自souldak,微博:@evagle以下内容整合筛选自互联网: int1. 占用4个字节2. 建立索引之后,查询速度快3. 条件范围搜索可以使用使用between4. 不能使用mysql提供的 ...