多台web服务器代码同步之rsync+inotify-tool

简介:

rsync+inotify

企业网站同步的方式有多重,可以用共享硬盘挂载方式,但是也可以是用rsync+inotify-tool的方式。

rsync:负责把数据推送到服务端。

inotify:负责在客户端监控代码或者文件变更,触发推送。

环境说明:

centos-6.5

A服务端(192.168.10.2)   B客户端(192.168.10.1)

wKiom1Q9_kKiUdu_AABlwNnTQ0w567.jpg

2:配置文件同步

首先都要安装rsync 服务 ,在主节点A上安装rsync inotify-tools

yum -y install rsync

 

下载安装inotify-tools

wget https://github.com/downloads/rvoicilas/inotify-tools/inotify-tools-3.14.tar.gz

tar zxvf inotify-tools-3.14.tar.gz

cd inotify-tools

./configure && make && make install

 

做好链接ln -sv /usr/local/lib/libinotify* /usr/lib/ 如果是64位系统 ln -sv /usr/local/lib/libinotify* /usr/lib64

要不然启动会报这个错误“/usr/local/bin/inotifywait: error while loading shared libraries: libinotifytools.so.0”

 

在主机上配置rsync

建立rsyncd.conf 配置文件 

cat /etc/rsyncd.conf 

uid = root#指定该模块传输文件时守护进程应该具有的uid

gid = root #指定该模块传输文件时守护进程应该具有的gid 

use chroot = no

hosts allow =192.168.10.1 192.168.10.2 #充许任何主机连接

max connections = 10 #客户端最大连接数,默认0(没限制

pid file = /var/run/rsyncd.pid #运行进程的ID写到哪里 

lock file = /var/run/rsync.lock #lock记录文件 

log file = /var/log/rsyncd.log #日志记录文件 

[web] # 这里是认证的模块名,在client端需要指定

path =/  # 需要做备份的目录(最好是备份目录的当前目录,因为他会把整个文件夹备份过来,做多了就重复了。)

comment = dwg file

ignore errors # 可以忽略一些无关的IO错误

read only = no #no客户端可上传文件,yes只读

list = false

auth users = user1 # 认证的用户名,如果没有这行,则表明是匿名

secrets file = /etc/server.pas # 指定认证口令文件位置

 

建立认证密码文件

cat /etc/server.pas 

User1:123456

 

chmod 600 /etc/server.pas 

 

启动服务 rsync --daemon

 

然后在主机上建立 密码文件

cat /etc/server.pas 

123456

 

chmod 600 /etc/server.pas

 

然后在主接点 上创建监控脚本

监控/usr/local/nginx/html/目录的 modify,delete,create,attrib 情况有这些情况就直接推送到B服务器上去

cat /root/rsync.sh 

#!/bin/bash

src=/web

 

/usr/local/bin/inotifywait -mrq --timefmt '%d/%m/%y/%H:%M' --format '%T %w %f' -e modify,delete,create,attrib $src | while read file

do

rsync -vzrtopg --delete --progress --password-file=/etc/server.pas $src user1@192.168.10.1::web            #A观察自己有变动了向B推送,要是后面再加参数,如 192.168.10.1::web /web测向自己推送。

done

(注视:

-m 是保持一直监听 

-r 是递归查看目录 

-q 是打印出事件 

--timefmt 是指定时间的输出格式 

--format 指定文件变化的详细信息 

-e create,move,delete,modify,attrib 是指 监听 创建 移动 删除 写入 权限” 事件 

 

然后运行

 

nohup ./rsync.sh & 










本文转自 小罗ge11 51CTO博客,原文链接:http://blog.51cto.com/xiaoluoge/1564307,如需转载请自行联系原作者
目录
相关文章
|
1月前
|
计算机视觉 Python
Flask学习笔记(六):基于Flask的摄像头-web显示代码(可直接使用)
这篇文章是关于如何使用Flask框架结合OpenCV库,通过电脑摄像头实现视频流在网页上的实时显示,并提供了单摄像头和多摄像头的实现方法。
89 2
Flask学习笔记(六):基于Flask的摄像头-web显示代码(可直接使用)
|
1月前
|
IDE 网络安全 开发工具
IDE之vscode:连接远程服务器代码(亲测OK),与pycharm链接服务器做对比(亲自使用过了),打开文件夹后切换文件夹。
本文介绍了如何使用VS Code通过Remote-SSH插件连接远程服务器进行代码开发,并与PyCharm进行了对比。作者认为VS Code在连接和配置多个服务器时更为简单,推荐使用VS Code。文章详细说明了VS Code的安装、远程插件安装、SSH配置文件编写、服务器连接以及如何在连接后切换文件夹。此外,还提供了使用密钥进行免密登录的方法和解决权限问题的步骤。
494 0
IDE之vscode:连接远程服务器代码(亲测OK),与pycharm链接服务器做对比(亲自使用过了),打开文件夹后切换文件夹。
|
1月前
|
IDE 网络安全 开发工具
IDE之pycharm:专业版本连接远程服务器代码,并配置远程python环境解释器(亲测OK)。
本文介绍了如何在PyCharm专业版中连接远程服务器并配置远程Python环境解释器,以便在服务器上运行代码。
331 0
IDE之pycharm:专业版本连接远程服务器代码,并配置远程python环境解释器(亲测OK)。
|
1月前
|
Java PHP
PHP作为广受青睐的服务器端脚本语言,在Web开发中占据重要地位。理解其垃圾回收机制有助于开发高效稳定的PHP应用。
【10月更文挑战第1天】PHP作为广受青睐的服务器端脚本语言,在Web开发中占据重要地位。其垃圾回收机制包括引用计数与循环垃圾回收,对提升应用性能和稳定性至关重要。本文通过具体案例分析,详细探讨PHP垃圾回收机制的工作原理,特别是如何解决循环引用问题。在PHP 8中,垃圾回收机制得到进一步优化,提高了效率和准确性。理解这些机制有助于开发高效稳定的PHP应用。
47 3
|
1月前
|
Linux C语言 C++
vsCode远程执行c和c++代码并操控linux服务器完整教程
这篇文章提供了一个完整的教程,介绍如何在Visual Studio Code中配置和使用插件来远程执行C和C++代码,并操控Linux服务器,包括安装VSCode、安装插件、配置插件、配置编译工具、升级glibc和编写代码进行调试的步骤。
268 0
vsCode远程执行c和c++代码并操控linux服务器完整教程
|
1月前
|
前端开发 Java
学习SpringMVC,建立连接,请求,响应 SpringBoot初学,如何前后端交互(后端版)?最简单的能通过网址访问的后端服务器代码举例
文章介绍了如何使用SpringBoot创建简单的后端服务器来处理HTTP请求,包括建立连接、编写Controller处理请求,并返回响应给前端或网址。
56 0
学习SpringMVC,建立连接,请求,响应 SpringBoot初学,如何前后端交互(后端版)?最简单的能通过网址访问的后端服务器代码举例
|
2月前
|
设计模式 数据库连接 PHP
PHP中的设计模式:如何提高代码的可维护性与扩展性在软件开发领域,PHP 是一种广泛使用的服务器端脚本语言。随着项目规模的扩大和复杂性的增加,保持代码的可维护性和可扩展性变得越来越重要。本文将探讨 PHP 中的设计模式,并通过实例展示如何应用这些模式来提高代码质量。
设计模式是经过验证的解决软件设计问题的方法。它们不是具体的代码,而是一种编码和设计经验的总结。在PHP开发中,合理地使用设计模式可以显著提高代码的可维护性、复用性和扩展性。本文将介绍几种常见的设计模式,包括单例模式、工厂模式和观察者模式,并通过具体的例子展示如何在PHP项目中应用这些模式。
|
2月前
|
网络安全 开发工具 云计算
服务器看代码阿里云
随着云计算技术的发展,阿里云作为国内领先的云计算服务提供商,其服务器受到广大用户青睐。本文主要介绍如何在阿里云服务器上便捷地查看与管理代码,如使用SSH连接服务器并通过命令行工具打开文件,以及利用Git进行版本控制和协作开发,提高代码管理效率。无论个人开发者还是企业团队,都能借助阿里云服务器高效地部署与管理应用程序,提升工作效率及产品质量。
68 10
|
2月前
|
XML JSON 安全
Web安全-代码注入
Web安全-代码注入
26 6
|
2月前
|
存储 Linux 网络安全
存放位置阿里云服务器代码的
阿里云服务器提供虚拟化计算、存储与网络服务。创建服务器时,可基于不同需求选择代码存放位置:文件系统支持直接通过SSH访问与编辑;公共目录如 `/var/www/html` 适合Web应用;对象存储OSS适用于大数据处理;代码托管服务如 GitLab 则利于版本控制与团队协作。合理选择有助于提升开发效率。
69 7
下一篇
无影云桌面