一、环境描述

server:192.168.122.54

client:192.168.122.55,192.168.122.56

同步目录:/data/html

server端有任何数据更新,即将同步到client端,实时同步

二、采用方法:rsync+inotify

三、关于inotify原理,请参考https://www.ibm.com/developerworks/cn/linux/l-inotify/

四、操作过程

4.1服务端脚本

  1. #!/bin/bash
  2. yum install rsync -y
  3. mkdir -p /data/html #如果要同步的不是此目录,可以根据实际需要添加目录
  4. #wget http://cloud.github.com/downloads/rvoicilas/inotify-tools/inotify-tools-3.14.tar.gz
  5. tar xzvf inotify-tools-3.14.tar.gz
  6. cd inotify-tools-3.14
  7. ./configure
  8. make
  9. make install
  10. #cponfigure inotify
  11. cat >>/home/rsync.sh << EOF
  12. #!/bin/bash
  13. src=/data/html/   #同步的源目录
  14. des=www
  15. host="192.168.122.55 192.168.122.56"
  16. /usr/local/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f' -e modify,delete,create,attrib \$src | while read files
  17. do
  18. for hostip in \$host
  19. do
  20. rsync -vzrtopg --delete --progress --password-file=/etc/rsyncd.secrets \$src root@\$hostip::\$des
  21. done
  22. echo "\${files} was rsynced" >>/tmp/rsync.log 2>&1
  23. done
  24. EOF
  25. #confiugre secret
  26. cat >> /etc/rsyncd.secrets << EOF
  27. 123456
  28. root:123456
  29. EOF
  30. chmod 0600 /etc/rsyncd.secrets
  31. #setting running onboot
  32. echo "nohup /bin/bash /home/rsync.sh &" >> /etc/rc.local
  33. nohup /bin/bash /home/rsync.sh &

4.2 客户端脚本

  1. #!/bin/bash
  2. yum install rsync -y
  3. mkdir -p /data/html
  4. #configure rsyncd daemon
  5. cat >> /etc/rsyncd.conf  << EOF
  6. uid = root
  7. gid = root
  8. use chroot = no
  9. max connections = 5
  10. pid file = /var/run/rsyncd.pid
  11. lock file = /var/run/rsync.lock
  12. log file = /var/log/rsyncd.log
  13. [www]
  14. path=/data/html/
  15. comment = update
  16. ignore errors
  17. read only = no
  18. list = no
  19. hosts allow = 192.168.122.0/24
  20. auth users = root
  21. uid = root
  22. gid = root
  23. secrets file = /etc/rsyncd.secrets
  24. EOF
  25. #configure secret
  26. cat >> /etc/rsyncd.secrets << EOF
  27. 123456
  28. root:123456
  29. EOF
  30. chmod 0600 /etc/rsyncd.secrets
  31. echo "rsync --daemon" >> /etc/rc.local
  32. rsync --daemon

五、测试过程。

略过测试过程,大家可以自己测试同步效果。

六、附一键安装包

  1. svn钩子自动更新post-commit
  2. for dir in $(svnlook dirs-changed /var/svn/web/)
  3. do
  4. svn update -N /opt/nginx/web/$dir --username "admin" --password "admin"
  5. done

本文转自it你好 51CTO博客,原文链接:http://blog.51cto.com/itnihao/1065426,如需转载请自行联系原作者

rsync+inotify一键安装脚本相关推荐

  1. nginx一键安装脚本

    nginx一键安装脚本 [root@cc nginx]# cat nginx_install.sh #!/bin/bash # > File Name: nginx_install.sh # & ...

  2. CentOS7下pptp ***一键安装脚本

    CentOS 6.7下pptp ***一键安装脚本,安装如下: wget http://mirrors.linuxeye.com/scripts/***_centos.sh chmod +x ./** ...

  3. mysql脚本简书,mysql一键安装脚本

    #!/bin/bash #MySQL一键安装脚本 #脚本运行前请确认本机没有安装其他版本的MySQL #运行脚本前请详细阅读my.cnf文件 PASSWORD=`cat my.cnf | grep p ...

  4. *** Python版一键安装脚本

    本脚本适用环境: 系统支持:CentOS 6,7,Debian,Ubuntu 内存要求:≥128M 日期:2018 年 02 月 07 日 关于本脚本: 一键安装 Python 版 *** 的最新版. ...

  5. linux安装yum的脚本,lnmp一键安装脚本yum方式快速安装

    自己编写的yum安装方式的LNMP一键安装脚本,yum方式安装,速度非常快,目前只有centos版本,其他系统没有弄. Centos5 chmod +x lnmp.sh sh lnmp.sh Cent ...

  6. NPS内网穿透服务端一键安装脚本

    NPS内网穿透服务端一键安装脚本,支持安装,更新,卸载以及重新生成配置文件,基于官方GitHub制作,自动安装最新版本 作者博客链接 脚本概览 安装 wget https://content.928w ...

  7. Frps一键安装脚本,带Frpc Windows便捷启动脚本

    说明:Frp估计很多人都用过,一个高性能的内网穿透工具,支持tcp.udp.http.https协议,安装和使用教程可以直接查看官方中文文档→传送门,写的超详细.这里博主分享个某大佬写的Frps一键脚 ...

  8. [转] *** 一键安装脚本(四合一)

    [from] https://teddysun.com/486.html 本脚本适用环境 系统支持:CentOS 6+,Debian 7+,Ubuntu 12+ 内存要求:≥128M 日期 :2017 ...

  9. Linux安装lamp脚本,CentOS LAMP一键安装脚本

    LAMP简单介绍 LAMP指的Linux(操作系统).Apache(HTTP 服务器),MySQL(有时也指MariaDB,数据库软件) 和PHP(有时也是指Perl或Python)的第一个字母缩写, ...

最新文章

  1. java notify视频_一个很好的小例子来演示java中的wait()和notify()方法
  2. 从源码分析RocketMQ系列-Consumer消息接收逻辑
  3. 转:PHP程序里的敏感信息处理方法
  4. Unity 手机的旋转控制
  5. 2019.2.4时GitHub超过15个粉丝就可以领取3000元啦!
  6. 年度重磅!2020年度中国计算机视觉人才调研报告正式发布
  7. Linux 以form表单形式上传文件
  8. HTTP状态码及对应原因
  9. SCM供应链管理系统的优点
  10. 从“H1N1病毒”看危机意识的重要性
  11. python中heapq的库是什么_详解Python中heapq模块的用法
  12. 【Educoder作业】※ 数值信息——除二取余
  13. MySQL的基本用法
  14. 震屏效果java_CocosCreator 实现手机震动效果
  15. 悲观锁和乐观锁的区别及使用场景
  16. 业务逻辑层,表示层,会话层及层间关系
  17. PGP应用——如何使用PGP软件?
  18. 隐藏浏览器滚动条但内容可以滚动的3种解决方式(简单清晰)
  19. java项目经理工资_java项目经理工资待遇及月薪是多少?
  20. webpack 效率及性能提升

热门文章

  1. STL与泛型编程(1)---模板
  2. 为什么科研总会走弯路【转】
  3. oracle 禁用外键
  4. 浅谈悲催的“期末考试”
  5. iOS逆向(8)-Monkey、Logos
  6. Elasticsearch——并发冲突以及解决方案
  7. Servlet第一篇【介绍Servlet、HTTP协议、WEB目录结构、编写入门Servlet程序、Servlet生命周期】...
  8. 鸿海拟将相关物流企业在中国大陆上市
  9. php单例模式实现对象只被创建一次 mysql单例操作类
  10. angular 之 jqLite