综合架构网站实时同步

news/2024/5/14 0:55:19/文章来源:https://blog.csdn.net/chenbeiping888/article/details/103981681

文章目录

  • 01.知识概述部分
  • 02.知识回顾说明
  • 03.实时同步服务监控软件部署:
    • 存储服务器部署
          • 第一个里程:安装监控数据变化的软件
          • 第二个里程:监控命令使用
    • 事件信息:inotify软件采用触发机制进行监控
          • 可监听的事件
          • 实现永久监控目录中数据变化 inotifywait -m 目录
          • 实现目录中数据递归监控: inotifywait -rm 目录
          • 实现目录中数据排除监控功能↓
          • 将无用的信息进制输出
          • 指定输出信息格式↓
  • 04.利用同步利用脚本方式实现
      • 编写脚本思路:
            • 1)发现变化的数据信息 inotifywait
            • 2)将变化的数据进行传输 rsync
            • 3)监控操作和同步操作建立联系
            • 脚本解释过程:
            • 脚本内容: while死循环 read 自动赋值
            • 守护进程方式运行脚本:
  • 05.利用软件实现实时同步过程
      • sersync软件部署过程:
          • 第一个里程:下载软件二进制包
          • 第二个里程:解压软件,并保存到相应目录中
          • 第三个里程:修改sersync配置文件 看11点30的视频
          • 第四个里程:启动服务程序
          • 实时同步服务出现异常:
  • 课程知识总结说明
  • 作业:

01.知识概述部分

1)实时同步服务命令参数
2)利用脚本实现实时同步
3)利用实时同步软件程序 sersync lsync(扩展)

02.知识回顾说明

1) NFS服务配置参数 (用户映射)

   anonuid: 指定用户映射信息(uid)     默认映射用户为nfsnobodyanongid: 指定用户组映射信息(gid)  默认映射用户组为nfsnobody

2)NFS服务相关命令

   rpcinfo       查看NFS服务注册信息showmount     查看可以挂载存储目录信息exportfs      管理NFS服务运行状态

3)NFS客户端操作说明
a 客户端挂载操作 临时挂载 永久挂载
b 客户端挂载参数 defaults

4)NFS服务企业应用
弃用NFS方案(解决耦合度过高问题)

03.实时同步服务监控软件部署:

https://man.linuxde.net/inotifywait inotifywait的man手册

存储服务器部署

第一个里程:安装监控数据变化的软件

条件:确认epel源可以使用

yum install -y inotify-tools

语法结构:
inotifywait 参数 事件 监控目录

第二个里程:监控命令使用

https://www.cnblogs.com/zoe233/p/12035383.html【集群实战】inotify

[root@nfs01 ~ 12:06:07]$ rpm -ql inotify-tools

语法结构:inotifywait --help

inotifywait  参数  事件  监控目录
inotifywait  目录         默认只监控一次
[root@nfs01 ~ 12:07:16]$ inotifywait /data
Setting up watches.
Watches established.
/data/ OPEN 123.txt

/usr/bin/inotifywait     ----监控数据变化命令
/usr/bin/inotifywatch    ----统计数据变化次数    添加 删除  修改
-m    是要持续监视变化。
-r    使用递归形式监视目录。
-q    输出少量信息(只输出事件信息)
-e    指定要监视的事件信息。
-d    类似-m参数,后台运行,会有日志,守护进程模式
-c    每列有,分隔 (MySQL便于生成表格,便于恢复数据和迁移)

事件信息:inotify软件采用触发机制进行监控

可监听的事件

在这里插入图片描述

实现永久监控目录中数据变化 inotifywait -m 目录
-m|--monitor    Keep listening for events forever. 保持永久监控   
-d|--daemon     Same as --monitor类似-m参数
实现目录中数据递归监控: inotifywait -rm 目录
-r|--recursive      Watch directories recursively.监控目录中子目录数据变化
实现目录中数据排除监控功能↓
--exclude  <pattern>   
Exclude all events on files matching the extended regular expression <pattern>
排除指定数据信息不要进行监控(区分大小写识别)--excludei <pattern> Like --exclude but case insensitive.
排除指定数据信息不要进行监控(忽略大小写识别)
将无用的信息进制输出
-q|--quiet    	    Print less (only print events).	输出少量信息(只输出事件信息)
指定输出信息格式↓
--timefmt  
strftime-compatible format string for use with %T in --format string.
定义显示的时间格式信息(时间格式的定义和 date命令类似)↓

在这里插入图片描述

--format   
Print using a specified printf-like format string; read the man page for more details.指定输出信息格式,指定文件变化的详细信息。↓ %e显示触发事件信息   %w显示监控目录信息   %f触发事件数据信息

在这里插入图片描述

-c|--csv      	Print events in CSV format.   (MySQL)以csV格式打印事件。
-e|--event <event1> [ -e|--event <event2> ... ]         Listen for specific event(s)指定监视事件信息

04.利用同步利用脚本方式实现

编写脚本思路:

1)发现变化的数据信息 inotifywait
inotifywait -mrq --format "%w%f"  /date -e "close_write,move,create,dalete"  数据信息
inotifywatch:可以收集被监视的文件系统使用度统计数据,指文件系统事件发生的次数统计。
2)将变化的数据进行传输 rsync
rsync -az 数据信息 rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.paasswd
3)监控操作和同步操作建立联系

shell脚本循环语句
· for 循环语句 ----有限循环
· while 循环语句 ----无限循环
条件为真就会一直循环↓

在这里插入图片描述

· until 循环语句 ----无限循环
条件为假就会一直循环↓

在这里插入图片描述

脚本解释过程:
inotifywait -mrq --format "%w%f" /data -e "close_write,move,create,delete"|while read data_info信息   --- 赋值 买一 --- 循环动作 增一
dorsync -az  $data_info --delete  rsync_backup@172.16.1.41::backup  --password-file=/etc/rsync.password 
done
脚本内容: while死循环 read 自动赋值
#!/bin/bash
inotifywait -mrq --format "%w%f" /data -e "close_write,move,create,delete"|while read data_info
dorsync -az  /data/ --delete  rsync_backup@172.16.1.41::backup  --password-file=/etc/rsync.passwd
done[root@nfs01 ~ 10:42:32]$ sh /server/scripts/date.sh[root@nfs01 ~ 10:32:00]$ ll /data
total 0
-rw-r--r-- 1 root root 0 Jan 13 12:10 123.txt
[root@nfs01 ~ 10:38:45]$ touch /data/234.txt
[root@nfs01 ~ 10:38:54]$ touch /data/2345.txt
[root@nfs01 ~ 10:41:13]$ vim /etc/rsyncd.conf
[root@nfs01 ~ 10:41:51]$ touch /data/245.txt
[root@nfs01 ~ 10:42:47]$ [root@backup ~ 10:42:41]# ll /backup/
total 0
-rw-r--r-- 1 rsync rsync 0 Jan 13 12:10 123.txt
-rw-r--r-- 1 rsync rsync 0 Jan 14 10:41 2345.txt
-rw-r--r-- 1 rsync rsync 0 Jan 14 10:38 234.txt
-rw-r--r-- 1 rsync rsync 0 Jan 14 10:42 245.txt
守护进程方式运行脚本:
[root@nfs01 ~ 10:53:20]$ nohup /server/scripts/date.sh &
[2] 7889
[root@nfs01 ~ 10:53:34]$ nohup: ignoring input and appending output to ‘nohup.out’

在这里插入图片描述

05.利用软件实现实时同步过程

https://www.cnblogs.com/zoe233/p/12035383.html【集群实战】inotify

sersynv ----实时同步软件 部署前提(inotify-tools rsync守护进程模式)
诞生过程:金山公司开发人员 周洋 ----数据实时同步(inotify+rsync 脚本)----开发实时同步程序(inotify+rsync) https://github.com/wsgzao/sersync
LNMP LNMT
L(linux)N(nginx)M(MYSQL)P(php python)

sersync软件部署过程:

第一个里程:下载软件二进制包

https://github.com/wsgzao/sersync

第二个里程:解压软件,并保存到相应目录中
[root@nfs01 tools 11:29:17]$ yum install -y unzip[root@nfs01 tools 11:30:07]$ cd /server/tools[root@nfs01 tools 11:30:07]$ unzip sersync-master.zip  [root@nfs01 tools 11:30:42]$ cd sersync-master/[root@nfs01 sersync-master 11:33:32]$ tar xf sersync2.5.4_64bit_binary_stable_final.tar.gz [root@nfs01 sersync-master 11:33:49]$ tree
.
├── GNU-Linux-x86
│   ├── confxml.xml
│   └── sersync2
├── inotify-tools-3.14.tar.gz
├── README.md
├── rsync-3.1.1.tar.gz
└── sersync2.5.4_64bit_binary_stable_final.tar.gz1 directory, 6 files[root@nfs01 sersync-master 11:34:09]$ mkdir /usr/local/sersync[root@nfs01 sersync-master 11:34:45]$ mv GNU-Linux-x86/* /usr/local/sersync/
第三个里程:修改sersync配置文件 看11点30的视频
vim confxml.xml
6	    <filter start="false">                           ----排除指定数据不要进行同步(默认关闭)
7		<exclude expression="(.*)\.svn"></exclude>
8		<exclude expression="(.*)\.gz"></exclude>
9		<exclude expression="^info/*"></exclude>
10		<exclude expression="^static/*"></exclude>
11	    </filter>12	    <inotify>                                               ----监控事件信息
13		<delete start="true"/>
14		<createFolder start="true"/>
15		<createFile start="false"/>
16		<closeWrite start="true"/>
17		<moveFrom start="true"/>
18		<moveTo start="true"/>
19		<attrib start="false"/>
20		<modify start="false"/>
21	    </inotify>24		<localpath watch="/opt/tongbu">  ----实现实时同步配置
25		    <remote ip="127.0.0.1" name="tongbu1"/>
26		    <!--<remote ip="192.168.8.39" name="tongbu"/>-->
27		    <!--<remote ip="192.168.8.40" name="tongbu"/>-->
28		</localpath>
29		<rsync>
30		    <commonParams params="-artuz"/>
31		    <auth start="false" users="root" passwordfile="/etc/rsync.pas"/>
32		    <userDefinedPort start="false" port="874"/><!-- port=874 -->
33		    <timeout start="false" time="100"/><!-- timeout=100 -->
34		    <ssh start="false"/>
35		</rsync>

在这里插入图片描述

第四个里程:启动服务程序

先将命令写进环境变量,或者将命令放到/usr/bin下面

vim /etc/profile      
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/sersync[root@nfs01 sersync 11:57:24]# mv sersync2 sersync[root@nfs01 ~ 11:56:47]# sersync -h    查看软件参数
set the system param
execute:echo 50000000 > /proc/sys/fs/inotify/max_user_watches
execute:echo 327679 > /proc/sys/fs/inotify/max_queued_events
parse the command param
参数-d:启用守护进程模式
参数-r:在监控前,将监控目录与远程主机用rsync命令推送一遍
c参数-n: 指定开启守护线程的数量,默认为10个
参数-o:指定配置文件,默认使用confxml.xml文件
(/opt/sersync/confxml.xml)sersync  -dro  /usr/local/sersync/confxml.xml 参数-m:单独启用其他模块,使用 -m refreshCDN 开启刷新CDN模块
参数-m:单独启用其他模块,使用 -m socket 开启socket模块
参数-m:单独启用其他模块,使用 -m http 开启http模块
不加-m参数,则默认执行同步程序--include=PATTERN 指定不排除而需要传输的文件模式
--include="oldboy03.txt"
实时同步服务出现异常:

修改配置文件参数,进行调试

<debug start="true"/>

linux系统软件安装方法:
1)yum安装软件方式
2)rpm安装软件方式
3)编译安装软件方式
4)二进制包安装软件

课程知识总结说明

1)实时同步监控软件命令 inotifywait命令使用
2)实时同步服务脚本实现 脚本编写思路 while循环语句 while read 变量
3)实时同步服务软件实现 sersync
部署过程(二进制方式) — 配置文件编写 — 利用sersync命令如何启动服务

作业:

  1. lsync软件实现实时同步方法
    http://www.mamicode.com/info-detail-2476271.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_898129.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

web网站部署与优化--部署LAMP平台(手工编译安装优化apache、mysql、php脚本,在LAMP平台安装论坛服务)

文章目录 一、 手工编译安装apache服务二、手工编译安装MYSQL三、 手工编译安装php四、 在LAMP架构上安装一个论坛服务 一、 手工编译安装apache服务 首先将实现下载好的软件包拷贝到/opt目录下 [rootlocalhost ~]# cd /opt/ [rootlocalhost opt]# mkdir httpd [rootlocalhos…

web网站部署与优化--虚拟主机的构建实操(基于域名的构建、基于端口的构建、基于IP地址的构建)

文章目录 一、 虚拟主机概述二、 基于域名的虚拟主机2.1 构建虚拟主机步骤2.2 构建过程2.2.1 配置DNS服务器2.2.2 虚拟主机配置文件 三、 基于端口的虚拟主机四、 基于IP地址的虚拟主机 一、 虚拟主机概述 虚拟 Web 主机指的是在同一台服务器中运行多个 Web 站点&#xff0c;其…

web网站部署与优化--LNMP架构(手工编译安装优化nginx、mysql、php脚本,在LNMP平台安装论坛服务)

文章目录 一、 手工编译安装Nginx1.1 编译过程1.2 添加nginx系统服务 二、 手工编译安装mysql 5.7版本cmake过程中报错解决办法编译安装过程 三、手工编译安装phpphp配置文件让nginx支持php功能测试数据库是否正常工作 四、 在LNMP架构上搭建一个论坛服务 一、 手工编译安装Ngi…

Nginx网站服务( Nginx统计模块、Nginx访问控制、Nginx部署虚拟主机 )

文章目录 一、 统计模块验证二、 nginx虚拟主机的创建2.1 基于不同域名2.2 基于不同端口2.3 基于不同IP 三、 Nginx 访问控制3.1 基于授权的访问控制1.生成密码文件2.修改主配置文件对相应目录添加认证配置项 一、 统计模块验证 [rootlocalhost ~]# cd /opt 将软件包拷贝到当前…

网站架构部署与优化--NginxRewrite(Rewrite概述、Nginx 的正则表达式 、Rewrite 的语法 、 Rewrite应用实操)

文章目录 一、 NginxRewrite 概述1.1 Rewrite 跳转场景1.2 Rewrite 跳转实现1.3 Rewrite 实际应用场景 二、 Nginx 的正则表达式三、 Rewrite 语法3.1 flag 标记说明&#xff1a;3.2 Location 分类3.3 Location 优先级相同类型的表达式&#xff0c;字符串长的会优先匹配rewrite…

RHCE ---给openlab搭建web网站

首先先把防火墙关闭并且下载好ssl [rootlocalhost li]# systemctl stop firewalld[rootlocalhost li]# setenforce 0[rootlocalhost li]# yum install mod_ssl 1.基于域名www.openlab.com可以访问网站内容为welcome to openlab 先制作服务器证书 req -newkey rsa:4096 -node…

大型网站架构演进历程

大型网站架构演进历程 Web1.0 静态网站Web2.0应用服务和数据分离使用缓存改善网站性能使用应用服务器集群改善网站的并发处理能力数据库读写分离使用搜索引擎业务拆分分布式服务 Web1.0 静态网站 大型网站都是从小型网站发展起来的 网站架构也是一样 网站刚开始搭建处于雏形阶段…

18个优秀的在线图片编辑服务网站

18个优秀的在线图片编辑服务网站 作者:Jason Ng 说起编辑图片&#xff0c;可能大多数人都会马上想起强大的Photoshop。事实上&#xff0c;除了购买或下载盗版的PS之外&#xff0c;你还可以使用很多优秀在线图片编辑服务&#xff0c;这些网站大多数都是免费的。对于大部分的…

网站被微信浏览器拦截怎么办 微信屏蔽网址打开如何解决

先来认识一下微信屏蔽的原理。按原理逐个攻破&#xff0c;整理如下&#xff1a;微信屏蔽的原理 一、微信系统的两个检测手段&#xff1a;第一是系统的自动检测&#xff1b;第二是微信工作人员的人工检测。 二、 人工的检测很好理解&#xff0c;有用户投诉举报&#xff0c;在多…

安全参透之旅第2章 FOCA网站元数据侦查工具

什么是元数据&#xff1f;就是有关数据的数据。它是有关特定数据集、对象或资源的描述性信息&#xff0c;包括所采用的格式及其创建时间和创建者。 对于参透测试人员&#xff0c;元数据可能很有用&#xff0c;因为它含有跟创建文件的系统有关的信息&#xff0c;比如&#xff1…

kali攻防第6章 SQLMAP介绍及ASP网站渗透

SQLMAP介绍及ASP网站渗透 准备工具 1、kali_linux系统 IP 10.10.10.131 3、Sqlpmap 入注工具 步骤&#xff1a; 1、 -u “检测是否存在注入” 返回数据库的名字 2、 3、 4、 参数解释&#xff1a; 1、user 根据经验 确定这是用户表 2、--columns 猜列表名 根…

kali攻防第7章 SQLMAP介绍之PHP网站渗透

SQLMAP介绍之PHP网站渗透 准备工具 1、KALI攻击系统IP :10.10.10.131 2、受害网站&#xff1a; 3、Sqlmap 入注工具 步骤&#xff1a; 1、检测&#xff1a;Sqlmap -u “” 2、sqlmap -u "" --is-dba 3、sqlmap -u “” --dbs 4、sqlmap -u “” --current-db …

python爬取动态网站实例——以爬取豆瓣电影分类排行榜为例

最近在编写 python 爬虫的时候&#xff0c;发现有时候爬取的网页和实际看到的效果不一致&#xff0c;经过各种搜索之后发现这时因为网页在加载的时候动态加载的结果&#xff0c;所以&#xff0c;为了可以获得相应的结果&#xff0c;需要模拟相应的请求。本文以 豆瓣电影排行榜 …

python爬取有声小说网站实现自动下载实例

最近想下载一些有声小说&#xff0c;但是苦于没有找到批量下载&#xff0c;每次都是单集单集的下载的&#xff0c;觉得很麻烦&#xff0c;就考虑用python写一个爬虫来实现自动搜集小说&#xff0c;自动下载。下面就是开始展开漫漫的爬虫之路。 基础的就不多说了&#xff0c;重…

如何拥有(建)一个自己的网站-虚拟主机建站

如何拥有(建)一个自己的网站-基础 如何拥有(建)一个自己的网站-准备 1.拥有一个虚拟主机 2.登录进入虚拟主机 3.点击进入域名绑定 域名绑定相当于让主机认可来自域名的访问&#xff0c;同时认可它访问主机上存放的内容。 服务器建站也有类似操作。 点击确定 即可 4.域名解析…

如何拥有(建)一个自己的网站-服务器建站

如何拥有(建)一个自己的网站-基础 如何拥有(建)一个自己的网站-准备 上面是一些需要知道的东西 1.拥有一台服务器 可以前往各大厂商购买&#xff0c;比方说腾讯云&#xff0c;阿里云等等&#xff0c;就不推荐了。 2.服务器可以选Linux系统 这里用Debian演示 3.SSH连接到服…

Hadoop学习笔记—20.网站日志分析项目案例(一)项目介绍

网站日志分析项目案例&#xff08;一&#xff09;项目介绍&#xff1a;当前页面 网站日志分析项目案例&#xff08;二&#xff09;数据清洗&#xff1a;http://www.cnblogs.com/edisonchou/p/4458219.html 网站日志分析项目案例&#xff08;三&#xff09;统计分析&#xff1a;…

Hadoop学习笔记—20.网站日志分析项目案例(二)数据清洗

网站日志分析项目案例&#xff08;一&#xff09;项目介绍&#xff1a;http://www.cnblogs.com/edisonchou/p/4449082.html 网站日志分析项目案例&#xff08;二&#xff09;数据清洗&#xff1a;当前页面 网站日志分析项目案例&#xff08;三&#xff09;统计分析&#xff1a…

Hadoop学习笔记—20.网站日志分析项目案例(三)统计分析

网站日志分析项目案例&#xff08;一&#xff09;项目介绍&#xff1a;http://www.cnblogs.com/edisonchou/p/4449082.html 网站日志分析项目案例&#xff08;二&#xff09;数据清洗&#xff1a;http://www.cnblogs.com/edisonchou/p/4458219.html 网站日志分析项目案例&#…