rsync+inotify實現實時同步

1、前期準備
bash

 一、準備兩臺主機,我這裏的系統是rhel7,分別是192.168.4.11和192.168.4.22ssh


2、rsync命令的用法:ide

一、基本格式:   rsync  [選項]   目錄1/   目錄2/測試

  注意加斜線和不加斜線的區別,加斜線就是隻同步目錄下的文件spa

二、選項:列舉一些經常使用的選項遞歸

 -n      //測試同步過程,不作實際修改文檔

 -r      //遞歸,包括目錄/子目錄及全部文件同步

 -l      //保留符號連接文件源碼

 -a     //歸檔模式,至關於-rlptgoDit

 --delete     //刪除目標文件夾內多於的文檔

 -z     //傳輸中啓用壓縮/解壓

 -v    //顯示同步信息

三、測試遠程同步:在4.11和4.22 /opt/dir1下測試,從4.11同步到4.22下

   rsync -avz --delete /opt/dir1/ 192.168.4.22:/opt/dir1/

四、在測試過程當中就會發現,會要求輸入遠程主機的密碼

   如何去掉密碼的驗證呢,用ssh密鑰對

  生成:在4.11主機上 :ssh-keygen

  傳遞公鑰到被遠程端: ssh-copy-id 192.168.4.22


3、安裝inotify-tools-3.13軟件和基本使用

 一、安裝依賴:gcc,make

 二、源碼安裝inotify-tools-3.13

 三、獲得命令:inotifywait

 四、inotifywait     選項   目標文件夾

    -m 持續監控   -r 遞歸目錄   -q 減小輸出信息


4、利用while循環+inotifywait+rsync實現實時同步

一、腳本

    #!/bin/bash

   while inotifywait -qqr /opt/dir1/        //監控該目錄,若是發生變化,則執行下面的語句

    do

       rsync -az --delete /opt/dir1/ root@192.168.4.22:/opt/dir1/     //拷貝該目錄到遠端的主機,實時同步

    done

 二、能夠直接放置在後臺進行

 三、測試,能夠在11上建立文件或者修改,而後去22上查看是否有變化

相關文章
相關標籤/搜索