Linux rsync遠程同步

2018-07-31 14:42 更新

防偽碼:既然目標是地平線,留給世界的只能是背影

                                                          第十三章  rsync遠程同步

前言:本章主要講解實現(xiàn)快速、安全、高效的異地備份,編寫觸發(fā)式同步腳本,實現(xiàn)數據同步。

一、理論部分實驗

1、 配置rsync源服務器A(同步源提供數據的原始位置,發(fā)起端讀取同步源的數據)

1)建立/etc/rsyncd.conf配置文件

Vi  /etc/rsyncd.conf

注意:如果采用匿名同步的方式,只要將其中的auth users和secrets file配置記錄去掉就可以了。

2) 為備份賬戶創(chuàng)建數據文件

Vi /etc/rsyncd_users.db

3)啟動rsync服務程序

如果要結束rsync進程,可以執(zhí)行kill $(cat /var/run/rsyncd.pid)

2、 使用rsync備份工具(在rsync客戶機,發(fā)起端,服務器B)

1) 例:將文件/etc/fstab、目錄/boot/grub同步備份到/opt目錄下(相當于本地備份)

 


2) 例:將rsync同步源上的網站根目錄下載到本地的/root下進行備份(遠程備份)

首先要配置防火墻:

然后確認rsync同步源上的網站根目錄:

最后在rsync客戶機上執(zhí)行備份

查看/root下有沒有網頁

3) 例:將源服務器中的wwwroot共享模塊(網站根目錄),下載到本地的/myweb目錄下,(刪除目標位置有而原始位置沒有的文件)

首先確認在客戶機上的/myweb下只有一個網頁(123.html)

然后執(zhí)行備份

注:-a表示遞歸模式,保留文件的權限、屬性等信息

-v表示顯示同步過程的詳細信息

-z表示在傳輸文件時進行壓縮

-H表示保留硬連接文件

--delete表示刪除目標位置有而原始位置沒有的文件(更安全)

查看在客戶機的/myweb(里面只有同步源服務器上的網頁,本地的123.html備份刪除,因為加了--delete的備份選項)

4) 例:每天晚上22:30對服務器的網站做一次同步

首先創(chuàng)建一個密碼文件,保存backuper的密碼

里面內容為pwd123:

然后設置權限,并做計劃任務:

編輯任務計劃(crontab  -e)

刪除客戶機的/myweb下的所有數據

當前時間為23:23,我把計劃任務設置為23:24

時間到了之后查看:

3、 配置rsync+inotify實時同步

作用:將rsync工具與inotify機制相結合,可以實現(xiàn)觸發(fā)式備份(實時同步),只要原始位置的文檔發(fā)生變化,則立即啟動增量備份操作。

1) 調整inotify內核參數(文件數量較多或者變化較頻繁時需要調整,把數值加大)

Vi /etc/sysctl.conf

執(zhí)行sysctl  -p更新

2) 安裝inotify-tools(軟件到ftp或本機上找)

先執(zhí)行configure,然后執(zhí)行make && make install

3)以監(jiān)控網站目錄/var/www/html為例(當/var/www/html進行增刪改查的時候就會動態(tài)顯示監(jiān)控信息)

注:-m表示持續(xù)監(jiān)控

-r表示遞歸整個目錄

-q表示簡化輸出信息

-e表是用來指定要監(jiān)控哪些事件

二、 綜合實驗(編寫觸發(fā)式同步腳本)

實驗目標:檢測本機/var/www/html目錄,一旦有更新就觸發(fā)rsync的同步操作,上傳備份至服務器192.168.1.7的/var/www/html目錄下,實現(xiàn)網站同步,保持兩個站點的文件一致。類似于dns的主從復制。

 

首先在同步源上進行操作:(配置ssh源分為四步)

1)創(chuàng)建用戶rput

  useradd rput && passwd rput

2)開啟sshd服務

   service  sshd start

3) 允許rput用戶登錄

 Vi /etc/ssh/sshd_config

AllowUsers rput@192.168.1.8

4) 啟用密鑰對驗證

Vi  /etc/ssh/sshd_config

配置發(fā)起端:(實現(xiàn)實時同步需要使用秘鑰對的方式驗證身份)

1)建立秘鑰對文件實現(xiàn)無交互式登錄

客戶機(發(fā)起端)創(chuàng)秘鑰對(公鑰、私鑰)

上傳公鑰文件

導入公鑰信息到數據庫文件

使用秘鑰對驗證

2)在發(fā)起端安裝inofity工具

安裝inotify-tools(同上,安裝包在附件中)

3) 編寫觸發(fā)式同步腳本

Vi /opt/inotify_rsync.sh

4) 執(zhí)行腳本

設置權限:Chmod  +x  /opt/inotify_rsync.sh

設置開機自動啟動:Echo  ‘/opt/inotify_rsync.sh’  >> /etc/rc.local

執(zhí)行腳本sh /opt/inotify_rsync.sh

5) 清空客戶端/var/www/html中的網頁(方便測試)

6) 在/var/www/html中添加網頁yangwen.html

7) 在服務器192.168.1.7上查看/var/www/html中有沒有a.html (如果有代表同步正常)

注:若實驗不通,則給同步源192.168.1.7中的/var/www/html修改屬性

例如:

謝謝觀看,真心的希望能幫到您!

本文出自 “一盞燭光” 博客,謝絕轉載!

以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號