Rsync遠程同步,實現下行 ,上行異地備份。配置rsync+inotify實時備份。
本次實驗環境:
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實時備份。