實戰: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
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...