實戰:rsync+inotify實現數據實時同步

来源:http://www.cnblogs.com/free-long/archive/2016/11/04/6021147.html
-Advertisement-
Play Games

Linux 內核從 2.6.13 版本開始提供了 inotify 通知介面,用來監控文件系統的各種變化情況,如文件存取、刪除、移動等。利用這一機制,可以非常方便地實現文件異動告警、增量備份,並針對目錄或文件的變化及時作出響應。可以監控某個用戶,什麼時間,做了什麼動作!利用這個內核介面,第三方軟體就可 ...


      Linux 內核從 2.6.13 版本開始提供了 inotify 通知介面,用來監控文件系統的各種變化情況,如文件存取、刪除、移動等。利用這一機制,可以非常方便地實現文件異動告警、增量備份,並針對目錄或文件的變化及時作出響應。可以監控某個用戶,什麼時間,做了什麼動作!利用這個內核介面,第三方軟體就可以監控文件系統下文件的各種變化情況,而inotify-tools正是實施監控的軟體。   

  使用 rsync 工具與 inotify 機制相結合,可以實現觸髮式備份(實時同步),只要原始位置的文檔發生變化,則立即啟動增量備份操作,否則處於靜態等侍狀態,這樣一來,就避免了按固定周期備份進存在的延遲性、周期過密等問題。

     軟體下載地址:http://sourceforge.net/projects/inotify-tools/                            #notify-tools-3.13

試驗要求:將test2主機/var/www/html目錄實時同步到test1主機/var/www/html目錄中;

試驗拓普圖

 

  [root@test2 ~]#uname -r                                                                                   #查看linux內核

 

   2.6.32-431.el6.x86_64

 

  [root@test2 ~]#yum -y install xinetd rsync;                                                        #安裝rsync服務

     [root@test2 ~]#yum -y install gcc-c++,openssh-clients                                                          

將inotify-tools上傳併進行解壓安裝

 

  [root@test2 ~]# tar xvf inotify-tools-3.13.tar.gz -C /usr/local/src/                       #解壓

  [root@test2 ~]# cd /usr/local/src/inotify-tools-3.13/                                            #切換目錄

  [root@test2 inotify-tools-3.13]#./configure --prefix=/usr/local/inotify-tools ;         #編譯安裝

  [root@test2 inotify-tools-3.13]#make ; make install                                                                                                 

 

測試

使用inotifywait命令監控網站目錄/var/www/html發生的變化,然後在另一個終端向/var/www/html目錄下添加文件、移動文件,查看屏幕輸出結果。

  inotifywait常用參數:

  -e  用來指定要監控哪些事件。這些事件包括: create 創建,move 移動,delete 刪除,modify 修改文件內容,attrib 屬性更改。

  -m 表示持續監控

  -r  表示遞歸整個目錄

  -q 表示簡化輸出信息

[root@test2 ~]# inotifywait -mrq -e create,move,delete,modify /var/www/html/

然後再另開一終端,進入/var/www/html目錄進行新增刪除測試;

  [root@test2 html]#mkdir test

  [root@test2 html]#touch test.txt

  [root@test2 html]#rm -rf test.txt

     

創建觸髮式腳本自動同步數據

ssh免密碼登錄

  [root@test2~]#ssh-keygen                                                                                              #生成密鑰

  [root@test2~]#ssh-copy-id [email protected]                                                              #發佈公鑰

 

編寫腳本

  [root@test2~]#vim inotify.sh

  #!/bin/bash

  SRC=/var/www/html

  [email protected]:/var/www/html

  inotifywait -mrq -e modify,delete,create,attrib ${SRC}|while read D E F

                       do

                          /usr/bin/rsync -avz --delete $SRC $DST

                       done

 

  [root@test2~]#chmod +x inotify.sh                                                     #添加執行許可權

 

測試自動同步的效果

  [root@test2~]#./inotify.sh                                                                   #運行腳本

  另開一終端進行新增刪除修改動作

  [root@test2~]#cd /var/www/html/

  [root@test2~]#touch bb.txt

   

然後登錄到192.168.1.190伺服器進行查看備份目錄

  

 

 

 

 

 

 

 

 

    

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 近幾年的linux kernel, 尤其是4.1以後,在Bay Trail平臺上會隨機掛起和死機,親測j1900,死機非常頻繁,而且死機前毫無徵兆,直接就掛起了,console也沒有相應。 這個問題在bugzilla.kernel.org上已經吵翻了,從2015年年初,一直到現在,仍然沒有徹底解決, ...
  • getsockopt()/setsockopt() level :選項級別 SOL_SOCKET :指定設置屬性在socket API層次,即通用socket選項 IPPROTO_IP :IP選項。 IPPROTO_TCP :TIP選項。 optname :選項名 SO_BROADCAST :廣播 ...
  • uboot啟動流程分析,針對S5PV210 BL1階段,SPL,u-boot-spl.bin 1、首先運行arch/arm/cpu/armv7/start.S 裡面的_start函數,進行異常向量表設置,然後跳轉到reset複位處理函數,設置處理器SVC模式,關閉IRQ和FIQ中斷。設置cp15協處 ...
  • 參考網上的很多網站,以這篇為主:http://blog.csdn.net/yhl_leo/article/details/50961542 這篇算是自己對caffe學習的一個總結系列的開頭。首先因為caffe的依賴項比較多,配置起來也比較麻煩。這篇算是比較詳盡地把caffe的各種相關配置說清楚。轉載 ...
  • linux移植問題彙總(一) 在此記錄移植linux過程中出現的問題以及解決方法。 項目GitHub地址 linux3.0.80:https://github.com/numbqq/linux-3.0.80_for_tiny210linux3.3.5:https://github.com/numbq ...
  • 一、準備工作 1. 下載並安裝centos7.2,配置好網路環境,確保centos能上網,可以獲取到yum源。 centos7.2的下載地址:http://pan.baidu.com/s/1eRTjats 密碼:wnby centos7.2的網路配置: 配置完畢後,使用 systemctl rest ...
  • 1.打開終端 2.輸入 3.輸入 4.然後就可以用命令pwgen生成預設八位的密碼,或者pwgen -n 10生成十位的密碼 ...
  • Ubuntu Server 16.04 + ownCloud 8.1.9 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...