三十四、【Linux常用工具】rsync+inotify實時同步演示

實時同步演示

    • 技術架構全景
    • 核心組件詳解
      • 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年。 專科…