实时同步演示

    • 技术架构全景
    • 核心组件详解
      • 1. inotify 内核子系统
      • 2. Rsync 高效同步工具
    • 实践演示
      • 一、环境准备与安装
        • 1. 检查内核支持
        • 2. 安装 inotify-tools
      • 二、配置 Rsync 服务端(目标机)
        • 1. 创建 Rsync 配置文件
        • 2. 启动 Rsync 守护进程
      • 三、配置实时同步脚本(源机)
        • 1. 创建同步脚本
        • 2. 设置权限并启动
      • 四、测试与验证
      • 命令总结表格
      • 功能作用详解
      • 1. 核心事件类型说明
      • 2. 内核参数优化

技术架构全景

inotify监控
触发同步
数据存储
日志记录
日志记录
源服务器
文件系统事件
Rsync传输
目标服务器
备份目录
同步日志

核心组件详解

1. inotify 内核子系统

  • 功能:监控文件系统事件
  • 内核支持:Linux 2.6.13+
  • 监控能力:
    • 单进程监控文件数:默认8192(可调优)
    • 事件队列长度:默认16384(可调优)
    • 响应延迟:毫秒级

2. Rsync 高效同步工具

特性优势适用场景传输效率
增量同步仅传输变化部分大文件同步极高
压缩传输减少带宽占用跨网络同步
校验机制数据一致性保证关键数据备份可靠
权限保持保留文件属性系统迁移完整

实践演示

一、环境准备与安装

1. 检查内核支持
[root@localhost ~]# uname -r
5.14.0-284.el9.x86_64  # 内核版本需 ≥2.6.13
[root@localhost ~]# grep INOTIFY_USER /boot/config-$(uname -r)
CONFIG_INOTIFY_USER=y   # 输出此值表示支持
2. 安装 inotify-tools
# 启用 EPEL 源(CentOS/Rocky)
[root@localhost ~]# dnf install epel-release -y
[root@localhost ~]# dnf install inotify-tools rsync -y# 验证安装
[root@localhost ~]# inotifywait --help | head -n 3
inotifywait 3.22.6
Wait for a particular event on a file or set of files.
Usage: inotifywait [options] file1 [file2] [file3] ...

二、配置 Rsync 服务端(目标机)

1. 创建 Rsync 配置文件
[root@localhost ~]# vi /etc/rsyncd.conf
[backup]                # 模块名
path = /data/backup     # 同步目标目录
uid = root              # 运行用户
gid = root              # 运行组
read only = no          # 关闭只读(关键!
hosts allow = 192.168.1.0/24  # 允许的客户端IP
2. 启动 Rsync 守护进程
[root@localhost ~]# systemctl enable --now rsyncd
[root@localhost ~]# ss -tunlp | grep 873
tcp  LISTEN 0 5  *:873  *:*  users:(("rsync",pid=1234))

三、配置实时同步脚本(源机)

1. 创建同步脚本
[root@localhost ~]# vi /opt/inotify_rsync.sh
#!/bin/bash
SRC="/var/www/html"    # 监控的源目录
DEST="192.168.1.100::backup"  # Rsync 目标地址
LOG="/var/log/inotify_rsync.log"# 持续监控事件
inotifywait -mrq -e create,delete,move,modify,attrib "$SRC" | while read path event file
dorsync -azP --delete "$SRC" "$DEST" >> "$LOG" 2>&1echo "[$(date +'%F %T')] $file 事件: $event" >> "$LOG"
done
2. 设置权限并启动
[root@localhost ~]# chmod +x /opt/inotify_rsync.sh
[root@localhost ~]# nohup /opt/inotify_rsync.sh &  # 后台运行

四、测试与验证

# 在源目录创建测试文件
[root@localhost ~]# touch /var/www/html/test{1..3}.txt# 查看目标目录同步结果
[root@localhost ~]# ls /data/backup
test1.txt  test2.txt  test3.txt# 检查同步日志
[root@localhost ~]# tail /var/log/inotify_rsync.log
[2025-07-28 14:22:05] test1.txt 事件: CREATE
[2025-07-28 14:22:05] test2.txt 事件: CREATE
[2025-07-28 14:22:06] test3.txt 事件: CREATE

命令总结表格

演示命令功能描述关键参数/文件
dnf install inotify-tools rsync -y安装核心工具inotify-tools 提供监控能力
vi /etc/rsyncd.conf配置 Rsync 服务端read only=no 允许写入
inotifywait -mrq -e create,delete,...监控文件事件-e 指定事件类型
rsync -azP --delete $SRC $DEST增量同步并删除目标多余文件--delete 保持严格一致
nohup /opt/inotify_rsync.sh &后台运行监控脚本避免终端关闭导致进程退出

功能作用详解

1. 核心事件类型说明

事件类型触发场景同步必要性
create文件/目录创建必需
delete文件/目录删除必需(配合 --delete
modify文件内容修改必需
move文件移动或重命名必需
attrib权限/属性变更(如 chmod)可选

2. 内核参数优化

# 编辑 sysctl 配置
[root@localhost ~]# vi /etc/sysctl.conf
fs.inotify.max_user_watches = 1000000  # 单进程可监控文件数
fs.inotify.max_queued_events = 32768    # 事件队列长度
fs.inotify.max_user_instances = 1024    # 最大监控实例数# 使配置生效
[root@localhost ~]# sysctl -p

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

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

相关文章

windows环境下MySQL 8.0 修改或重置密码

windows环境下MySQL 8.0 修改或重置密码 1打开命令窗口cmd,输入命令:net stop mysql, 停止MySQL服务, 开启跳过密码验证登录的MySQL服务 2输入命令 mysqld --console --skip-grant-tables --shared-memory 再打开一个新的cmd&…

基于YOLOP与GAN的图像修复与防御系统设计与实现

基于YOLOP与GAN的图像修复与防御系统设计与实现 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家,觉得好请收藏。点击跳转到网站。 1. 引言 1.1 研究背景 随着深度学习技术在计算机视觉领域的…

将目录文件转移到D盘,使之后的下载缓存数据转移,不再存入c盘

将 C:\Users 文件夹(用户文件夹)转移到其他盘是一个复杂且风险较高的操作。C:\Users 文件夹包含了系统中每个用户的个人数据和配置文件,修改这个路径可能会导致系统出现问题,包括程序无法正常工作或无法登录。因此, 强…

Cesium大气散射效果

由于做全球体积云效果的需要,再来研究下大气散射效果和体积云类似,关于大气散射颜色计算的过程也仅发生在这两个球体之间。如图所示。计算从相机出发的视线与球壳的交点,如果不相交,则该视线方向上不会发生大气散射,直…

预过滤环境光贴图制作教程:第二步 - 生成环境贴图图集

核心目标 本步骤的核心是生成一张包含 6 级分辨率的环境贴图图集(envAtlas),实现: 将第一步的立方体贴图(sourceCube)重新映射为等矩形投影(适合存储和采样); 生成 6 级不同分辨率的等矩形数据(0 级最高清,5 级最模糊); 用 RGBP 编码压缩 HDR 数据(平衡精度与存…

1. ESP开发之实体按键(KEYPADBUTTON)控制LVGL控件

说明LV_INDEV_TYPE_BUTTON的使用LV_INDEV_TYPE_KEYPAD的使用 说明 本实验使用LVGL版本为v9.2 LVGL中有四种输入设备,如下LV_INDEV_TYPE_POINTER, /**< Touch pad, mouse, external button*/ LV_INDEV_TYPE_KEYPAD, /**< Keypad or keyboard*/ LV_INDEV_TYPE_BUTTON, /*…

C++:STL中list的使用和模拟实现

C中的list是标准模板库&#xff08;STL&#xff09;提供的双向链表容器&#xff0c;支持高效的元素插入和删除操作。在上一篇中讲解了vector的使用和模拟实现&#xff0c;vector是具有连续的空间&#xff0c;迭代器是可以随机的&#xff0c;而list却于vector不同&#xff0c;li…

【编号58-61】我国四大高原矢量示意图shp数据

今天分享的是&#xff1a;中国四大高原&#xff0c;分别是青藏高原、内蒙古高原、黄土高原、云贵高原。青藏高原位置与范围&#xff1a;位于中国西南部&#xff0c;包括西藏、青海的全部&#xff0c;川西高原及滇西北高原等部分地区。它的边界&#xff0c;向东是横断山脉&#…

【AI落地应用实战】利用 Amazon Bedrock Claude3 打造个性化 AI Character 应用

目录一、引言&#xff1a;AI Character应用的市场前景与技术基础二、技术架构设计2.1、整体方案概述2.2、核心组件介绍2.3、部署架构图三、系统部署方案3.1、方案总述3.2、实践流程1️⃣. Bedrock 配置2️⃣. 安装 SillyTavern3️⃣. 配置 SillyTavern 使用 Claude3 模型4️⃣.…

Java常用日志框架介绍

Java提供了很多第三方的日志框架可供使用&#xff0c;按照现在的设计理念&#xff0c;一般把日志框架分成门面(Facade)部分和具体实现(Implementation)部分&#xff0c;门面(Facade)提供了抽象的api规范&#xff0c;实现(Implementation)负责实现api完成具体的日志记录功能。开…

飞书 —— 多维表格 —— AI生成

1.添加关联账号&#xff1a; 2.获取密钥 ARK_API_KEY 进入火山引擎服务页面&#xff1a;https://console.volcengine.com/ark/region:arkcn-beijing/model/detail?Iddeepseek-r1 先进入推理模型 > 快捷API接入 再去在线推理中创建推理接入点 点击新创建好的接入点的API调…

我的世界模组开发教程——资源(1)

下面我们来研究一下ResourceLocation,每次开启游戏时都会报这个错误:“ResourceLocation 中的 ResourceLocation(String) 已过时, 且标记为待删除”,下面我们来详细的研究一下这个类 ResourceLocation ResourceLocation 是 Minecraft 中用于唯一标识游戏资源的核心类(如方…

我从 Web2 转型到 Web3 的 9 条经验总结

作者&#xff1a;Forte Group 高级区块链工程师 Yurii Kovalchuk原文&#xff1a;https://cryptoslate.com/why-i-left-web2-for-web3-and-why-you-might-too/三年前&#xff0c;我做出了一个彻底改变职业轨迹的决定&#xff1a;离开熟悉的 Web2&#xff0c;投身于深邃、混乱却…

【MySQL 数据库】MySQL索引特性(一)磁盘存储定位扇区InnoDB页

文章目录没有索引&#xff0c;可能会有什么问题二、认识磁盘2.1 MySQL与存储2.2 磁盘&#xff1a;2.3 扇区2.4 定位扇区2.5 结论三、三者作用流程&#xff08;磁盘&#xff0c;块&#xff0c;InnoDB页&#xff09;四、MySQL与磁盘交互基本单位五、建立共识&#x1f6a9;总结没有…

2419. 按位与最大的最长子数组

Problem: 2419. 按位与最大的最长子数组 文章目录思路解题过程复杂度Code思路 按位异或只会让数值越来越小&#xff0c;因此最长的连续按位与的最大值只存在于连续最大值中。 解题过程 遍历数组取出最大值&#xff0c;再遍历找到每一次连续最大值&#xff0c;从中取出最长的连续…

基于Java(SpringBoot)+Vue+MySQL 实现(Web)的网络课程平台

基于 SpringBoot 的网络课程平台1 绪论1.1 引言本科题研究并实现了一个面向网络学习的平台&#xff0c;为需要学习的人提供了一个学习的平台。任何人都课在本平台进行注册登录&#xff0c;学习观看视频。本平台是一个关于网络课程学习平台&#xff0c;学员科自主选择视频学习&a…

Centos7 | 防火墙(firewalld)使用ipset管理ip地址的集合

文章目录一、firewalld中ipset的用途1.1 用途1.2 注意与iptables所用的ipset命令的不同&#xff0c;1.3 配置详解二、firewalld中ipset的操作例子2.1 新建一个set2.2 在set中添加ip2.3 从set中删除ip2.4 删除一个set2.5 打印一个set的文件路径2.6 打印一个set的内容2.8 判断一个…

Day06_C++编程

01.思维导图02.将鸟笼放飞所有鸟类的题&#xff0c;改成观察者模式#include <iostream> #include <cstring> #include <cstdlib> #include <unistd.h> #include <sstream> #include <vector> #include <memory>//写一个鸟类:有一个多…

【面试场景题】随机立减金额计算

文章目录背景设计思路方案结论高斯分布&#xff08;正态分布&#xff09;背景 某电商公司跟某银行有合作&#xff0c;推进银行信用卡办卡&流水&#xff0c;使用此银行信用卡用户&#xff0c;支付可以随机立减10&#xff5e;30元。其实公司每一笔都可获得30元支付立减金&…

2025年湖北中级注册安全工程师报考那些事

2025年湖北中级注册安全工程师报考那些事各位从事建筑安全的人员看过来&#xff0c;注册安全工程师是你们行业认可度较为高的证书。关于报考无论是安全相关专业跟不相关的专业都是可以报考的。只是年份要求不同。 本科&#xff1a;相关专业3年&#xff0c;不相关专业4年。 专科…