实时同步演示
- 技术架构全景
- 核心组件详解
- 1. inotify 内核子系统
- 2. Rsync 高效同步工具
- 实践演示
- 一、环境准备与安装
- 1. 检查内核支持
- 2. 安装 inotify-tools
- 二、配置 Rsync 服务端(目标机)
- 1. 创建 Rsync 配置文件
- 2. 启动 Rsync 守护进程
- 三、配置实时同步脚本(源机)
- 四、测试与验证
- 命令总结表格
- 功能作用详解
- 1. 核心事件类型说明
- 2. 内核参数优化
技术架构全景
核心组件详解
1. inotify 内核子系统
- 功能:监控文件系统事件
- 内核支持:Linux 2.6.13+
- 监控能力:
- 单进程监控文件数:默认8192(可调优)
- 事件队列长度:默认16384(可调优)
- 响应延迟:毫秒级
2. Rsync 高效同步工具
特性 | 优势 | 适用场景 | 传输效率 |
---|
增量同步 | 仅传输变化部分 | 大文件同步 | 极高 |
压缩传输 | 减少带宽占用 | 跨网络同步 | 高 |
校验机制 | 数据一致性保证 | 关键数据备份 | 可靠 |
权限保持 | 保留文件属性 | 系统迁移 | 完整 |
实践演示
一、环境准备与安装
1. 检查内核支持
[root@localhost ~]
5.14.0-284.el9.x86_64
[root@localhost ~]
CONFIG_INOTIFY_USER=y
2. 安装 inotify-tools
[root@localhost ~]
[root@localhost ~]
[root@localhost ~]
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 ~]
[backup]
path = /data/backup
uid = root
gid = root
read only = no
hosts allow = 192.168.1.0/24
2. 启动 Rsync 守护进程
[root@localhost ~]
[root@localhost ~]
tcp LISTEN 0 5 *:873 *:* users:(("rsync",pid=1234))
三、配置实时同步脚本(源机)
1. 创建同步脚本
[root@localhost ~]
SRC="/var/www/html"
DEST="192.168.1.100::backup"
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 ~]
[root@localhost ~]
四、测试与验证
[root@localhost ~]
[root@localhost ~]
test1.txt test2.txt test3.txt
[root@localhost ~]
[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. 内核参数优化
[root@localhost ~]
fs.inotify.max_user_watches = 1000000
fs.inotify.max_queued_events = 32768
fs.inotify.max_user_instances = 1024
[root@localhost ~]