基於RHEL6使用rsync構建鏡像網站

概述html

1rsyncRemote Sync遠程同步)服務器

是一款開源的快速備份工具,能夠在不一樣主機間鏡像同步數據,支持本地複製,或與其餘SSHrsync主機同步,rsync應用普遍,大多數Linux都將其做爲默認組件已安裝。負載均衡

2、組成ssh

①發起端:負責發起rsync同步操做的客戶機ide

②備份源:負責響應來自客戶機rsync同步操做的服務器,能夠是SSH備份源或rsync備份源工具

3、同步方式測試

①下行同步:備份源負責提供文檔的原始位置;發起端應對該位置有讀取權限網站

②上行同步:備份源負責提供文檔的目標位置;發起端應對該位置有寫入權限spa

4inotify機制rest

Linux內核從2.6.13開始提供inotify機制,能夠監控文件系統的變更狀況做出通知響應,如能夠針對目錄或文件的變化及時做出響應

②使用rsync工具與inotify機制相結合,可實現觸發式實時同步

inotify機制由內核提供,主要作本機監控,所以更適合上行同步

④輔助工具:inotify-tools

inotifywait:用於持續監控,實時輸出結果

inotifywatch:用於短時間監控,任務完成後再出結果

 

實驗環境:

Snip20181118_1.png

搭建兩臺WEB服務器以實現負載均衡,所以兩臺服務器的網站文檔內容必須相同,使用rsync進行遠程同步,須要結合inotify機制實現觸發式的上行同步,保持兩個站點內容一致。

服務器A192.168.4.254,做爲rsync發起端,/var/www/html爲原始位置

服務器B192.168.4.100,做爲遠程SSH服務器,/var/www/html爲目標位置

注:兩臺服務器都須要安裝配置Apache,請自行解決

 

1、配置SSH備份源(服務器B

1、建立備份用戶rput,準備目錄/var/www/html

useradd rput

passwd rput

mkdir –p /var/www/html         -----安裝Apache時也會自動建立此目錄

2、將目錄/var/www/html屬主改成rput,並設置ACL容許用戶daemon寫入

chown -R rput:rput /var/www/html

setfacl -R -m user:daemon:rwx /var/www/html

setfacl -R -m default:user:daemon:rwx /var/www/html

getfacl /var/www/html

3、配置並啓用sshd服務,容許rput用戶登錄

vi /etc/ssh/sshd_config

  allowusers rput

service sshd restart

 

2、使用rsync備份工具(服務器A

1、建立備份用戶tom,建立目錄/var/www/html,並添加測試網頁文件

useradd tom

passwd tom

echo "welcome to benet." >  /var/www/html/index.html

2、將目錄/var/www/html屬主改成tom,並設置ACL容許用戶daemon寫入

chown -R tom:tom /var/www/html

setfacl -R -m user:daemon:rwx /var/www/html

setfacl -R -m default:user:daemon:rwx /var/www/html

getfacl /var/www/html

3、由tom用戶建立SSH密鑰對,並將密鑰短語設爲空,實現無交互登錄

su – tom

ssh-keygen -t rsa

4、將tom用戶公鑰分發給服務器Brput用戶,並驗證登錄

ssh-copy-id rput@192.168.4.100

ssh rput@192.168.4.100

注:①ssh-copy-id命令能夠把本地的ssh公鑰文件安裝到遠程主機對應的帳戶下

    ②也可以使用scp命令將公鑰文件拷貝至服務器,再導入到儲存密鑰的文件中

    ③例scp  ~/.ssh/id_rsa.pub  rput@192.168.4.100:/tmp

        cat /tmp/id_rsa.pub >> /home/rput/.ssh/authorized_keys

5、使用rsync作上行同步

rsync -az --delete /var/www/html/   rput@192.168.4.100:/var/www/html/

6、在服務器B查看同步的狀況

ls /var/www/html

 

注:rsync命令的用法

①基本格式:rsync [選項] 原始位置 目標位置

②經常使用選項:

-a:歸檔模式,遞歸併保留對象屬性,等同於 -rlptgoD

-v:顯示同步過程的詳細(verbose)信息

-z:在傳輸文件時進行壓縮(compress

-H:保留硬鏈接文件

-r:遞歸模式,包含目錄及子目錄中全部文件

-l:對於符號連接文件仍然複製爲符號連接文件

-p:保留文件的權限標記

-t:保留文件的時間標記

-g:保留文件的屬組標記(僅超級用戶使用)

-o:保留文件的屬主標記(僅超級用戶使用)

-D:保留設備文件及其餘特殊文件

--delete:刪除目標位置有而原始位置沒有的文件

--checksum:根據對象的校驗和來決定是否跳過文件

 

3、經過inotify機制實現實時同步(服務器A

1、安裝inotify-tools軟件包,以便使用inotifywaitinotifywatch工具

tar zxf inotify-tools-3.14.tar.gz -C /usr/src/

cd /usr/src/inotify-tools-3.14/

./configure

make && make install

2、編寫腳本,根據inotifywait監控結果觸發rsync同步操做

su - tom                    -------切換爲備份用戶tom

vi  rputsync.sh

Snip20181118_2.png

chmod a+x rputsync.sh

注:inotifywait經常使用選項

-m 持續進行監控

-r 遞歸監控全部子對象

-q 簡化輸出信息

-e 指定要監控哪些事件類型,如modifycreatemovedelete

 

3、執行腳本,修改/var/www/html目錄內容,驗證同步效果

su - tom             ------必須以tom身份運行腳本

./rputsync.sh

cd /var/www/html

touch a b c

在目標位置(服務器B)查看同步的狀況

ls /var/www/html

 

補充:配置rsync備份源

1、創建/etc/rsyncd.conf配置文件

vi /etc/rsyncd.conf

Snip20181118_3.png

2、建立帳戶數據文件

vi /etc/rsyncd_users.db

backuper:123

chmod 600 /etc/rsyncd_users.db

3、啓動rsync服務程序

rsync –daemon

netstat -anptu | grep rsync

vi /etc/xinetd.d/rsync

       disable = no

yum –y install xinetd

service xinetd start

相關文章
相關標籤/搜索