1. 1.安装软件包
  1. # yum install inotify-tools
  2. # yum -y install rsync

2.同步机器相互添加信任

  1. [root@host-10-0-100-106 ~]# ssh-keygen #一路回车
  2. [root@host-10-0-100-106 ~]# ssh-copy-id -i /root/.ssh/
  3. [root@host-10-0-100-106 ~]# ssh-copy-id -i /root/.ssh/id_rsa.pub root@10.0.100.139

3.两台机器上分别放置同步脚本

  1. vim /shell/inotify.sh
    #!/bin/bash
  2. watch_dir=/data/wwwroot/www.ikmak.com/data/attachment
  3. push_to=10.0.100.104 #另一台机器放置修改ip地址
  4. inotifywait -mrq -e delete,close_write,moved_to,moved_from,isdir --timefmt '%Y-%m-%d %H:%M:%S' --format '%w%f:%e:%T' $watch_dir \
  5. --exclude=".*.swp" |\
  6. while read line;do
  7. # logging some files which has been deleted and moved out
  8. if echo $line | grep -i -E "delete|moved_from";then
  9. echo "$line" >> /etc/inotify_away.log
  10. fi
  11. # from here, start rsync's function
  12. rsync -az --delete --exclude="*.swp" --exclude="*.swx" $watch_dir $push_to:/data/wwwroot/www.ikmak.com/data/
  13. if [ $? -eq 0 ];then
  14. echo "sent $watch_dir success"
  15. else
  16. echo "sent $watch_dir failed"
  17. fi
  18. done

优化脚本

  1. [root@xuexi tmp]# cat ~/inotify.sh
  2. #!/bin/bash
  3. watch_dir=/www
  4. push_to=172.16.10.5
  5.  
  6. # First to do is initial sync
  7. rsync -az --delete --exclude="*.swp" --exclude="*.swx" $watch_dir $push_to:/tmp
  8.  
  9. inotifywait -mrq -e delete,close_write,moved_to,moved_from,isdir --timefmt '%Y-%m-%d %H:%M:%S' --format '%w%f:%e:%T' $watch_dir \
  10. --exclude=".*.swp" >>/etc/inotifywait.log &
  11.  
  12. while true;do
  13. if [ -s "/etc/inotifywait.log" ];then
  14. grep -i -E "delete|moved_from" /etc/inotifywait.log >> /etc/inotify_away.log
  15. rsync -az --delete --exclude="*.swp" --exclude="*.swx" $watch_dir $push_to:/tmp
  16. if [ $? -ne 0 ];then
  17. echo "$watch_dir sync to $push_to failed at `date +"%F %T"`,please check it by manual" |\
  18. mail -s "inotify+Rsync error has occurred" root@localhost
  19. fi
  20. cat /dev/null > /etc/inotifywait.log
  21. rsync -az --delete --exclude="*.swp" --exclude="*.swx" $watch_dir $push_to:/tmp
  22. else
  23. sleep 1
  24. fi
  25. done

4.配置后台执行脚本

  1. # nohup /shell/inotify.sh &
    # crontab -e
  2. * * * * * nohup /shell/inotify.sh > /dev/null 2>&1 &

  

  

 

  1.  

Rsync+Inotify 搭建实时同步数据的更多相关文章

  1. rsync简介与rsync+inotify配置实时同步数据

    rsync简介 rsync是linux系统下的数据镜像备份工具.使用快速增量备份工具Remote Sync可以远程同步,支持本地复制,或者与其他SSH.rsync主机同步. rsync特性 rsync ...

  2. rsync+inotify实现实时同步案例--转

    转自:http://chocolee.blog.51cto.com/8158455/1400596 随着应用系统规模的不断扩大,对数据的安全性和可靠性也提出的更好的要求,rsync在高端业务系统中也逐 ...

  3. linux rsync +inotify 实现 实时同步

    前言:     rsync可以实现触发式的文件同步,但是通过crontab守护进程方式进行触发,同步的数据和实际数据会有差异,而inotify可以监控文件系统的各种变化,当文件有任何变动时,就触发rs ...

  4. rsync+inotify实现实时同步案例【转】

    1.1 inotify介绍 inotify是一种强大的.细粒度的.异步的文件系统事件控制机制.linux内核从2.6.13起,加入了inotify支持,通过inotify可以监控文件系统中添加.删除. ...

  5. rsync+inotify实现实时同步案例

    转自:http://chocolee.blog.51cto.com/8158455/1400596 随着应用系统规模的不断扩大,对数据的安全性和可靠性也提出的更好的要求,rsync在高端业务系统中也逐 ...

  6. Rsync+inotify实现实时同步

    1.1 inotify介绍 inotify是一种强大的.细粒度的.异步的文件系统事件控制机制.linux内核从2.6.13起,加入了inotify支持,通过inotify可以监控文件系统中添加.删除. ...

  7. CentOS 7 rsync+inotify实现实时同步

    测试环境如下: inotify-slave IP : 172.16.0.222 inotify-master IP : 172.16.0.233 对两台机的要求: 安装依赖包gcc: yum inst ...

  8. rsync+inotify实现实时同步,自动触发同步文件

    本文参考来自:http://chocolee.blog.51cto.com/8158455/1400596 我的需求和他的略有不同,同时做了一下更改,如下: 需求:两台机器相互为主备,搭建相同的两个服 ...

  9. rsync+inotify 实现实时同步

    inotify:这个可以监控文件系统中的添加,修改,删除,移动等事件 inotify的特性需要linux内核2.6.13以上的支持 [root@test1 inotify-tools-3.13]# u ...

随机推荐

  1. 【题解】Radio stations Codeforces 762E CDQ分治

    虽然说好像这题有其他做法,但是在问题转化之后,使用CDQ分治是显而易见的 并且如果CDQ打的熟练的话,码量也不算大,打的也很快,思维难度也很小 没学过CDQ分治的话,可以去看看我的另一篇博客,是CDQ ...

  2. UVA 1635 Irrelevant Elements

    https://vjudge.net/problem/UVA-1635 题意:n个数,每相邻两个求和,最后变成1个数,问这个数除m的余数与第几个数无关 n个数使用次数分别为C(n-1,i) i∈[0, ...

  3. 「模板」 FHQ_Treap 区间翻转

    「模板」 FHQ_Treap 区间翻转 没有旋转的 Treap 实现区间操作的功能,很好理解,也很好写,只是速度不算太快. 对于要翻转的区间,把整棵 Treap(存有区间 \([1,n]\) 的信息) ...

  4. FJOI游记(日记向 不定期更新)

    emmmm说实话只是突发奇想开个blog记录记录自己的内心想法罢了.. 2017/12/22:刷了一周的计算几何..刷的死去活来..结果还是被D惨了...譬如都不会考,要考我都不会什么的...感觉内心 ...

  5. netcat、nc工具随记

    netcat又称nc工具,其最主要的作用就是建立连接并返回两个数据流,剩下的就看各位的想象力了,想象力是很重要的,这也是这个工具的强大之处的所在,所以重要的东西才要说三遍,想象力! 具体参数如下: - ...

  6. [Leetcode Week13]Search a 2D Matrix

    Search a 2D Matrix 题解 原创文章,拒绝转载 题目来源:https://leetcode.com/problems/search-a-2d-matrix/description/ D ...

  7. python基础===Excel处理库openpyxl

    openpyxl是一个第三方库,可以处理xlsx格式的Excel文件. 安装: pip install openpyxl 对如下excel进行读取操作,如图: from openpyxl import ...

  8. 安全测试===sqlmap(肆)转载

    十八.杂项 1.使用简写 参数:-z 有些参数组合是被经常用到的,如“--batch --random-agent --ignore-proxy --technique=BEU”,这样写一大串很不好看 ...

  9. python基础===PEP网站,代码规范指南

    PEP 8是最古老的PEP之一,它向Python程序员提供了代码格式设置指南.PEP 8的篇幅很长,但大都与复杂的编码结构相关. https://python.org/dev/peps/pep-000 ...

  10. ktime使用例子【原创】

    #include <linux/kernel.h>#include <linux/init.h>#include <linux/module.h>#include ...