1. 程式人生 > >Rsync遠程同步,實現下行 ,上行異地備份。配置rsync+inotify實時備份。

Rsync遠程同步,實現下行 ,上行異地備份。配置rsync+inotify實時備份。

有變 變化 ESS 遠程 修改密碼 調整 queue 運行參數 ado

技術分享圖片rsync作為一款最常用的備份工具,是linux/unix系統默認安裝的基本組件之一。

本次實驗環境:

1)VMware Workstation虛擬機環境

2)以CentOS7系統為實驗對象,一臺PC作為rsync源服務器,設置IP地址為,192.168.30.55 一臺PC作為Rsync客戶端,設置IP地址為,192.168.30.77。在遠程同步任務中,負責發起rsync同步操作的客戶機稱為發起端,而負責響應來自客戶機的rsync同步操作的服務器稱為同步源。

技術分享圖片

首先配置rsync源服務器,

rsync作為同步源時以守護進程運行,為客戶端提供備份源,配置rsync同步源需要修改配置文件rsyncd.conf,創建備份賬號,然後將rsync程序以--daemon選項運行

(1)修改配置文件rsyncd.conf,設定相應的參數。

技術分享圖片

技術分享圖片

(2)為授權的備份帳戶創建數據文件

根據上一步設置,創建帳戶數據文件,添加一行用戶記錄,以冒號分隔,用戶名稱為backuper,密碼為abc123.由於賬號信息采用明文存放,因此應調整文件權限,避免賬號信息泄露。

技術分享圖片

技術分享圖片

技術分享圖片

(3)使用yum命令安裝apache服務軟件httpd,提供共享目錄站點/var/www/html/,並啟動服務,關閉防火墻,關閉增強型功能。

技術分享圖片

技術分享圖片

(4)啟動rsync服務程序,運行參數--daemon,由於rsync不是系統基本服務,所以不能使用service命令,若要關閉rsync服務,則可以采用kill進程的方式,重啟 rsync服務,則需刪除rsync的pid進程文件。

技術分享圖片

(5)更改備份源文件權限,使備份用戶擁有相應的權限

技術分享圖片

在客戶端發起rsync同步操作請求

有了同步源服務器之後,就可以使用rsync工具來執行遠程同步了,

(1)rsync命令格式及常用備份選項

技術分享圖片

(2)配置源的表示方法

在執行同步任務時,rsync命令需要指定同步源服務器中的資源位置。rsync同步源的資源表示方式有兩種;

1)用戶名@主機地址::共享模塊名 # 兩個冒號分割形式

2)rsync://用戶名@主機地址/共享模塊名 #URL地址形式

例如:執行以下操作將訪問rsync同步源,並下載到本地/web目錄下進行備份

rsync -avz [email protected]::wwwroot /web 或者 rsync --avz rsync://[email protected]/wwwroot /web

首先我們在服務端備份源/var/www/html目錄下創建一些文件

技術分享圖片

然後在客戶端執行以下操作將訪問源服務端中的共享模塊,並下載到本地的/web目錄下

技術分享圖片

技術分享圖片

免交互發起同步備份請求,定期備份任務

技術分享圖片

創建密碼文件,將備份用戶backuper的密碼寫入密碼文件即可。並使用免交互同步,註意:要修改密碼文件權限。

技術分享圖片

技術分享圖片

使用crontab -e 創建定期備份計劃任務,

技術分享圖片

技術分享圖片

配置rsync+inotify實時同步

技術分享圖片

技術分享圖片

(1)調整inotify內核參數

在linux內核中,默認的inotify機制提供了三個調控參數:max_queue_event,max_user_instances,max_user_watches,分別表示監控事件隊列,最多監控實例數,每個實例最多監控文件個數。當要監控的目錄,文件數量較多或者變化較頻繁時,建議加大這三個參數的值。直接修改/etc/sysctl.conf配置文件。

技術分享圖片

技術分享圖片

技術分享圖片

(2)安裝inotify-tools

inotify-tools可以從網站http://inotify-tools.sourceforge.net/下載。註意還需使用yum命令安裝gcc gcc-c++, 提前準備好編譯環境

將提前準備好的軟件包進行解壓,並進行配置編譯安裝

技術分享圖片

技術分享圖片


執行inotifywait命令,然後在另一個終端向/web目錄下,創建文件,刪除文件。跟蹤屏幕輸出結果。可以監控modify(修改),create(創建),move(移動),delete(刪除),attrib(屬性更改)等各種事件,一旦有變動就會立即輸出結果

選項-e 指定要監控哪些事件

選項-m 表示持續監控

選項-r 表示遞歸整個目錄

選項-q 表示簡化輸出信息

技術分享圖片



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

為了實時同步更新,只要檢測到變動時執行rsync上行同步操作即可。需要註意的是,當更新較頻繁時應避免並發執行rsync備份--若rsync進程已經存在,則忽略本次同步,

技術分享圖片

上述腳本用來檢測本機/web目錄的變動情況,一旦有更新觸發rsync同步操作,上傳備份至服務器192.168.30.55的共享模塊wwwroot,實際目錄為/var/www/html


技術分享圖片

開啟兩個客戶機終端,驗證實時同步更新

在客戶機的一個終端執行腳本,在另一個終端/web目錄下創建文件

技術分享圖片

技術分享圖片

在服務端/var/www/html目錄下可以看到客戶端同步的文件

技術分享圖片


Rsync遠程同步,實現下行 ,上行異地備份。配置rsync+inotify實時備份。