NEIL's_學而時習之x不學無術~私藏IT技術經驗分享部落

關於部落格
NEIL. Cheng....寫作只是為了日後工作之備忘操作參考

本部落格文章撰寫前進邁向第五年(since 2009 ~至今)仍繼續推進分享IT學習!!About Windows/Linux Server,Virtualization


分享網誌: 由於,本人預先完成LAB後,才補上撰寫文章與截圖,若發現文圖對照說明有誤..本人將盡快校正,也請不吝指教! Thanks!

  • 153344

    累積人氣

  • 44

    今日人氣

    0

    訂閱人氣

Rsync+Inotify tools 實現觸發同步成效..By Neil

 實作開始: 

先搞定.201 &  .202  Nginx Web Virtual host : 

mkdir  /rsync                                #以.201  範例為示,.202 請依樣畫葫蘆

vi /etc/nginx/conf.d/vi.conf            #VirtualHost: v1.neil0918u.com

server {
    listen   80;
    server_name v1.neil0918u.com;
   
charset utf-8;
    location / {
        root   /rsync;
        index index.php index.htm index.html;
        if (-f $request_filename) {
                        expires 30d;
                        break;
        }
        if (!-e $request_filename) {
                        rewrite ^(.+)$ /index.php?q=$1 last;
        }
    }
    location ~ .php$ {
        fastcgi_pass   127.0.0.1:9999;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME /rsync$fastcgi_script_name;
        fastcgi_param  PATH_INFO $fastcgi_script_name;
        include        /etc/nginx/fastcgi_params;
    }
    location ~ /.ht {
        deny  all;
    }
}


echo "hello nginx"  >> /rsync/index.php

/etc/init.d/nginx restart                    #確認虛擬主機運行OK如下圖



接下來我們要搞定.205 主機Apache+WebDav(SSL)配置

yum -y install mod_ssl 

vi /etc/httpd/conf/httpd.conf

確認兩個module 有被載入:  mod_dav.so & mod_dav fs.so

建置SSL WebDav 配置參考本人之前撰寫 RHEL 6 EX300 筆記整理如下

本人習慣使用建置CA簽署方式產生Cert(憑證) & Private Key 

步驟說明: 在Web主機先產生Req(憑證申請書)跟private.key =>送繳CA做簽署產生Cert

          Then 我們可以配置之後SSL 完成設定




本Lab是直接修改/etc/httpd/conf.d/ssl.conf  檔案(配置上述產生cert跟private key 路徑指定)


SSLCertificateFile /etc/httpd/conf.d/v2.neil0918u.com.crt

SSLCertificateKeyFile /etc/httpd/conf.d/privikey.key

---------------------------------------------


/etc/init.d/httpd restart  生效變更設定即可



Then 我們開始編寫Web Dav 組態檔

vi /etc/httpd/conf.d/webdav.conf      #實際webdav url:

http://v2.neil0918u.com/web-dav

DAVLockDB var/DavLock
Alias /web-dav /rsync
<Location /web-dav>
SSLRequireSSL        #啟用ssl
   DAV On
   Options None
   AuthType Basic
   AuthName WebDAV
   AuthUserFile /etc/httpd/conf/.htpasswd       #設定登入時帳戶密碼
   <LimitExcept GET PROPFIND OPTIONS PUT DELETE> #web dav權限配置
      Order allow,deny
      Allow from 192.168.11.
      Require user neil
   </LimitExcept>
</Location>

---------

 htpasswd -cm /etc/httpd/conf/.httpasswd  neil        #配置.htpasswd 帳戶登入/密碼

-----

/etc/init.d/httpd restart  #目前Web-Dav 告一段落



Then 接下來我們配置.205 底下Rsync+Inotify 配置

mkdir /rsync

chown root.apache -R /rsync

cd /rsync

vi inotify.sh           #inotify 觸發執行必須搭配scripts,所以我們要編寫以下scripts

#!/bin/bash
host1=192.168.11.201
host2=192.168.11.202

src=/rsync/
dst1=cent201
dst2=cent202
user1=neil
user2=neil

/usr/bin/inotifywait -mrq --timefmt  '%d/%m/%y %H:%M' --format '%T %W%f%e' -e modify,delete,create,attrib $src |  while read files   

do

/usr/local/bin/rsync -vzrtopd --rsh='ssh'  --delete --progress  $src $user1@$host1:/$src

/usr/local/bin/rsync -vzrtopd --rsh='ssh'  --delete --progress  $src $user2@$host2:/$src

echo "${files} was rsyncd" >> /tmp/rsync.log 2>&1

done

#上述scripts 概意: 使用inotifywait 指令監控檔案,修改,刪除,新增,屬性變更(attrib)時

    觸發 rsync 同步remote 端 .201 & .202  的目的地資料夾:/rsync (同步使用ssh Transport)

    同步完成後輸出一份紀錄到/tmp/rsync.log 2>&1 供系統管理員查核

---------授予權限/並開機自動執行----

./inotify.sh      #開始執行監控檔案異動狀態

chmod 755 inotify.sh

echo " /rsync/inotifysh.sh " >> /etc/rc.local




[Rsync+Inotify 觸發同步測試]

修改 /rsync 目錄底下 的 index.php 檔案

變更字串: "Neil Angel 小天 !"

最後我們瀏覽同步LOG /tmp/rsync.log  發現該異動檔案已經被觸發同步到.201 & 202 



現在我們瀏覽.201 網站首頁: 驗證資料內容修改後是否即可被同步

http://v1.neil0918u.com       #非常短暫時間Remote"觸發同步"修改配置,我司實驗成功



由於我本LAB 實驗目標將.205 這台機器定位為"Client 端" 網頁設計師修改存儲網頁資料空間

故我們在此開啟WebDav供網頁設計師可Remote修改資料

前幾步,我們配置好Web-Dav 環境: 接下來我們測試存取WebDav 使用

CarotDAV Tools 連接 webdav: 填寫主機URL:https://v2.neil0918u.com/web-dav

                             使用者驗證帳號/密碼 & Setting Name => O
K


   OK 後產生連接設定如下


進入WebDav: 可以取得/rsync/ 底下所有分享檔案供網頁設計師(新增/刪除/修改)


  測試刪除"77.jpg"

  回到.201 & .202 查看 77.jpg 是否亦是被同步刪除/觸發同步測試結束


相簿設定
標籤設定
相簿狀態