實時同步演示
- 技術架構全景
- 核心組件詳解
- 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 ~]