rsync+inotify一键安装脚本

简介:

一、环境描述

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

4.2 客户端脚本

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

相关文章
|
5月前
|
机器学习/深度学习 人工智能 JSON
AI操作网页:browser-use和AI大模型互动解析
browser-use 是一个开源的 AI 驱动浏览器自动化框架,能够高效实现在线任务自动化,支持 AI 大模型操作网页,具备强大的社区影响力(GitHub 星数超 63.4k)。它通过精巧的 prompt 设计和多类型消息组合,实现与大模型的高效交互,可完成登录、数据提取、文档生成等复杂任务。其核心技巧包括结构化输入输出、任务拆解、历史记忆管理及多模态支持,为 AI 代理应用提供实践范例与技术启发。
|
4天前
|
搜索推荐 编译器 Linux
一个可用于企业开发及通用跨平台的Makefile文件
一款适用于企业级开发的通用跨平台Makefile,支持C/C++混合编译、多目标输出(可执行文件、静态/动态库)、Release/Debug版本管理。配置简洁,仅需修改带`MF_CONFIGURE_`前缀的变量,支持脚本化配置与子Makefile管理,具备完善日志、错误提示和跨平台兼容性,附详细文档与示例,便于学习与集成。
293 116
|
19天前
|
域名解析 人工智能
【实操攻略】手把手教学,免费领取.CN域名
即日起至2025年12月31日,购买万小智AI建站或云·企业官网,每单可免费领1个.CN域名首年!跟我了解领取攻略吧~
|
7天前
|
数据采集 人工智能 自然语言处理
Meta SAM3开源:让图像分割,听懂你的话
Meta发布并开源SAM 3,首个支持文本或视觉提示的统一图像视频分割模型,可精准分割“红色条纹伞”等开放词汇概念,覆盖400万独特概念,性能达人类水平75%–80%,推动视觉分割新突破。
451 44
Meta SAM3开源:让图像分割,听懂你的话
|
13天前
|
安全 Java Android开发
深度解析 Android 崩溃捕获原理及从崩溃到归因的闭环实践
崩溃堆栈全是 a.b.c?Native 错误查不到行号?本文详解 Android 崩溃采集全链路原理,教你如何把“天书”变“说明书”。RUM SDK 已支持一键接入。
684 222
|
1天前
|
Windows
dll错误修复 ,可指定下载dll,regsvr32等
dll错误修复 ,可指定下载dll,regsvr32等
133 95
|
11天前
|
人工智能 移动开发 自然语言处理
2025最新HTML静态网页制作工具推荐:10款免费在线生成器小白也能5分钟上手
晓猛团队精选2025年10款真正免费、无需编程的在线HTML建站工具,涵盖AI生成、拖拽编辑、设计稿转代码等多种类型,均支持浏览器直接使用、快速出图与文件导出,特别适合零基础用户快速搭建个人网站、落地页或企业官网。
1677 158