防偽碼:既然目標(biāo)是地平線,留給世界的只能是背影
第十三章 rsync遠(yuǎn)程同步
前言:本章主要講解實(shí)現(xiàn)快速、安全、高效的異地備份,編寫觸發(fā)式同步腳本,實(shí)現(xiàn)數(shù)據(jù)同步。
一、理論部分實(shí)驗(yàn)
1、 配置rsync源服務(wù)器A(同步源提供數(shù)據(jù)的原始位置,發(fā)起端讀取同步源的數(shù)據(jù))
1)建立/etc/rsyncd.conf配置文件
Vi /etc/rsyncd.conf
注意:如果采用匿名同步的方式,只要將其中的auth users和secrets file配置記錄去掉就可以了。
2) 為備份賬戶創(chuàng)建數(shù)據(jù)文件
Vi /etc/rsyncd_users.db
3)啟動(dòng)rsync服務(wù)程序
如果要結(jié)束rsync進(jìn)程,可以執(zhí)行kill $(cat /var/run/rsyncd.pid)
2、 使用rsync備份工具(在rsync客戶機(jī),發(fā)起端,服務(wù)器B)
1) 例:將文件/etc/fstab、目錄/boot/grub同步備份到/opt目錄下(相當(dāng)于本地備份)
2) 例:將rsync同步源上的網(wǎng)站根目錄下載到本地的/root下進(jìn)行備份(遠(yuǎn)程備份)
首先要配置防火墻:
然后確認(rèn)rsync同步源上的網(wǎng)站根目錄:
最后在rsync客戶機(jī)上執(zhí)行備份
查看/root下有沒有網(wǎng)頁
3) 例:將源服務(wù)器中的wwwroot共享模塊(網(wǎng)站根目錄),下載到本地的/myweb目錄下,(刪除目標(biāo)位置有而原始位置沒有的文件)
首先確認(rèn)在客戶機(jī)上的/myweb下只有一個(gè)網(wǎng)頁(123.html)
然后執(zhí)行備份
注:-a表示遞歸模式,保留文件的權(quán)限、屬性等信息
-v表示顯示同步過程的詳細(xì)信息
-z表示在傳輸文件時(shí)進(jìn)行壓縮
-H表示保留硬連接文件
--delete表示刪除目標(biāo)位置有而原始位置沒有的文件(更安全)
查看在客戶機(jī)的/myweb(里面只有同步源服務(wù)器上的網(wǎng)頁,本地的123.html備份刪除,因?yàn)榧恿?-delete的備份選項(xiàng))
4) 例:每天晚上22:30對服務(wù)器的網(wǎng)站做一次同步
首先創(chuàng)建一個(gè)密碼文件,保存backuper的密碼
里面內(nèi)容為pwd123:
然后設(shè)置權(quán)限,并做計(jì)劃任務(wù):
編輯任務(wù)計(jì)劃(crontab -e)
刪除客戶機(jī)的/myweb下的所有數(shù)據(jù)
當(dāng)前時(shí)間為23:23,我把計(jì)劃任務(wù)設(shè)置為23:24
時(shí)間到了之后查看:
3、 配置rsync+inotify實(shí)時(shí)同步
作用:將rsync工具與inotify機(jī)制相結(jié)合,可以實(shí)現(xiàn)觸發(fā)式備份(實(shí)時(shí)同步),只要原始位置的文檔發(fā)生變化,則立即啟動(dòng)增量備份操作。
1) 調(diào)整inotify內(nèi)核參數(shù)(文件數(shù)量較多或者變化較頻繁時(shí)需要調(diào)整,把數(shù)值加大)
Vi /etc/sysctl.conf
執(zhí)行sysctl -p更新
2) 安裝inotify-tools(軟件到ftp或本機(jī)上找)
先執(zhí)行configure,然后執(zhí)行make && make install
3)以監(jiān)控網(wǎng)站目錄/var/www/html為例(當(dāng)/var/www/html進(jìn)行增刪改查的時(shí)候就會(huì)動(dòng)態(tài)顯示監(jiān)控信息)
注:-m表示持續(xù)監(jiān)控
-r表示遞歸整個(gè)目錄
-q表示簡化輸出信息
-e表是用來指定要監(jiān)控哪些事件
二、 綜合實(shí)驗(yàn)(編寫觸發(fā)式同步腳本)
實(shí)驗(yàn)?zāi)繕?biāo):檢測本機(jī)/var/www/html目錄,一旦有更新就觸發(fā)rsync的同步操作,上傳備份至服務(wù)器192.168.1.7的/var/www/html目錄下,實(shí)現(xiàn)網(wǎng)站同步,保持兩個(gè)站點(diǎn)的文件一致。類似于dns的主從復(fù)制。
首先在同步源上進(jìn)行操作:(配置ssh源分為四步)
1)創(chuàng)建用戶rput
useradd rput && passwd rput
2)開啟sshd服務(wù)
service sshd start
3) 允許rput用戶登錄
Vi /etc/ssh/sshd_config
AllowUsers rput@192.168.1.8
4) 啟用密鑰對驗(yàn)證
Vi /etc/ssh/sshd_config
配置發(fā)起端:(實(shí)現(xiàn)實(shí)時(shí)同步需要使用秘鑰對的方式驗(yàn)證身份)
1)建立秘鑰對文件實(shí)現(xiàn)無交互式登錄
客戶機(jī)(發(fā)起端)創(chuàng)秘鑰對(公鑰、私鑰)
上傳公鑰文件
導(dǎo)入公鑰信息到數(shù)據(jù)庫文件
使用秘鑰對驗(yàn)證
2)在發(fā)起端安裝inofity工具
安裝inotify-tools(同上,安裝包在附件中)
3) 編寫觸發(fā)式同步腳本
Vi /opt/inotify_rsync.sh
4) 執(zhí)行腳本
設(shè)置權(quán)限:Chmod +x /opt/inotify_rsync.sh
設(shè)置開機(jī)自動(dòng)啟動(dòng):Echo ‘/opt/inotify_rsync.sh’ >> /etc/rc.local
執(zhí)行腳本sh /opt/inotify_rsync.sh
5) 清空客戶端/var/www/html中的網(wǎng)頁(方便測試)
6) 在/var/www/html中添加網(wǎng)頁yangwen.html
7) 在服務(wù)器192.168.1.7上查看/var/www/html中有沒有a.html (如果有代表同步正常)
注:若實(shí)驗(yàn)不通,則給同步源192.168.1.7中的/var/www/html修改屬性
例如:
謝謝觀看,真心的希望能幫到您!
本文出自 “一盞燭光” 博客,謝絕轉(zhuǎn)載!
更多建議: