LinuxTools---Rsync---原理及其應用(二)

   上篇博文 《LinuxTools---Rsync---原理及其應用(一) 》中已經瞭解了rsync這個工具的原理以及基於SSH備份源的rsync遠程備份的搭建,下面將介紹有關rsync備份源。


rsync不僅僅用作遠程同步的發起端(客戶端),也可以作爲守護進程運行,爲其他客戶機提供備份源,配置rsync備份源需要建立配置文件rsync.conf,創建備份賬戶,然後將rsync程序以”- -daemon”選項運行。

建立/etc/rsyncd.conf配置文件:

配置文件rsyncd.conf位於/etc/目錄下,需自行建立,配置內容的格式與samba服務器類似,具體可以參考man手冊頁,下面將以源目錄/var/www/html、備份賬號backupuser爲例,介紹其配置方法。

在備份源服務器上創建rsyncd.conf文件。該文件要手工創建。


rsync配置文件介紹:

全局參數:對整個rsync服務器生效,如果模塊參數和全局參數衝突,針對衝突模塊的模塊參數生效

模塊參數:定義需要通過rsync輸出的目錄定義的參數

下面是常見的全局配置參數,

port    #→指定後臺程序使用的端口號,默認爲873。
uid    #→該選項指定當該模塊傳輸文件時守護進程應該具有的uid,配合gid選項使用可以確定哪些可以訪問怎麼樣的文件權限,默認值是" nobody"。
gid    #→該選項指定當該模塊傳輸文件時守護進程應該具有的gid。默認值爲" nobody"。
max connections    #→指定該模塊的最大併發連接數量以保護服務器,超過限制的連接請求將被告知隨後再試。默認值是0,也就是沒有限制。
lock file    #→指定支持max connections參數的鎖文件,默認值是/var/run/rsyncd.lock。
motd file    #→" motd file"參數用來指定一個消息文件,當客戶連接服務器時該文件的內容顯示給客戶,默認是沒有motd文件的。
log file    #→" log file"指定rsync的日誌文件,而不將日誌發送給syslog。
pid file    #→指定rsync的pid文件,通常指定爲“/var/run/rsyncd.pid”,存放進程ID的文件位置。
hosts allow =     #→單個IP地址或網絡地址   //允許訪問的客戶機地址

下面是常見的模塊配置參數

主要是定義服務器哪個目錄要被同步輸出。

其格式必須爲“[共享模塊名]”形式,這個名字就是在rsync客戶端看到的名字,其實有點象Samba服務器提供的共享名。而服務器真正同步的數據是通過path來指定的。

Comment   #→給模塊指定一個描述,該描述連同模塊名在客戶連接得到模塊列表時顯示給客戶。默認沒有描述定義。
Path   #→指定該模塊的供備份的目錄樹路徑,該參數是必須指定的。
read only   #→yes爲只允許下載,no爲可以下載和上傳文件到服務器
exclude   #→用來指定多個由空格隔開的多個文件或目錄(相對路徑),將其添加到exclude列表中。這等同於在客戶端命令中使用—exclude或----filter來指定某些文件或目錄不下載或上傳(既不可訪問)
exclude from   #→指定一個包含exclude模式的定義的文件名,服務器從該文件中讀取exclude列表定義,每個文件或目錄需要佔用一行
include   #→用來指定不排除符合要求的文件或目錄。這等同於在客戶端命令中使用--include來指定模式,結合include和exclude可以定義複雜的exclude/include規則。
include from   #→指定一個包含include模式的定義的文件名,服務器從該文件中讀取include列表定義。
auth users   #→該選項指定由空格或逗號分隔的用戶名列表,只有這些用戶才允許連接該模塊。這裏的用戶和系統用戶沒有任何關係。如果" auth users"被設置,那麼客戶端發出對該模塊的連接請求以後會被rsync請求challenged進行驗證身份這裏使用的challenge/response認證協議。用戶的名和密碼以明文方式存放在" secrets file"選項指定的文件中。默認情況下無需密碼就可以連接模塊(也就是匿名方式)。
secrets file   #→該選項指定一個包含定義用戶名:密碼對的文件。只有在" auth users"被定義時,該文件纔有作用。文件每行包含一個username:passwd對。一般來說密碼最好不要超過8個字符。沒有默認的secures file名,注意:該文件的權限一定要是600,否則客戶端將不能連接服務器。
hosts allow   #→指定哪些IP的客戶允許連接該模塊。定義可以是以下形式:
    單個IP地址,例如:192.167.0.1,多個IP或網段需要用空格隔開,
    整個網段,例如:192.168.0.0/24,也可以是192.168.0.0/255.255.255.0
“*”則表示所有,默認是允許所有主機連接。
hosts deny   #→指定不允許連接rsync服務器的機器,可以使用hosts allow的定義方式來進行定義。默認是沒有hosts deny定義。
list   #→該選項設定當客戶請求可以使用的模塊列表時,該模塊是否應該被列出。如果設置該選項爲false,可以創建隱藏的模塊。默認值是true。
Timeout   #→通過該選項可以覆蓋客戶指定的IP超時時間。通過該選項可以確保rsync服務器不會永遠等待一個崩潰的客戶端。超時單位爲秒鐘,0表示沒有超時定義,這也是默認值。對於匿名rsync服務器來說,一個理想的數字是600。

創建rsyncd.conf文件:

wKiom1M4CfnSpZ_qAAAo-ey26lw356.jpg

配置文件內容如下:

wKioL1M4CdTDlrY_AAF3nQNoD4E658.jpg


注:如果以"use chroot = no"選項運行可寫的rsync守護程序的話,***者就可能通過誘騙rsync在模塊之外創建文件,所以出於安全考慮,建議將該選項設置爲yes。

基於安全性考慮,對於rsync的備份源最好僅允許以只讀方式做下行同步,若確實需要做上行同步時,建議改用SSH備份源。另外,下行備份可以採用匿名的方式,只要將其中的”auth  users”和”secrets  file”配置記錄去掉就可以了。


爲備份賬戶創建數據文件:

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


在該文件中添加用戶名和密碼

wKioL1M4CdXD6-dxAAAT8lYvNow415.jpg


設置rsyncd_users.db文件的權限爲700600,權限設置不對的話身份驗證會失敗

wKioL1M4CdWTwDazAAA1wMft2o8083.jpg


與配置SSH備份源類似,備份用戶backuper也需要對源目錄/var/www/html/有相應的讀取權限。實際上只要other組有讀取權限,則備份用戶backuper和運行用戶nobody也就有了讀取權限了。


啓動rsync服務程序,執行”rsync  --daemon”命令就可以啓動rsync服務,以獨立監聽服務的方式運行,若要關閉rsync服務,可以採用kill進程的方式。

wKioL1M4CeLB583rAADGHEDyN4k340.jpg


”rsync  --daemon”保存到/etc/rc.local文件中,確保系統啓動後自動啓動rsync服務。

wKioL1M4CdjRnch8AAAy2-FMoNQ387.jpg


上面啓動rsync服務程序是通過”rsync  --daemon”方式啓動rsync服務。考慮到異地備份的特性,通常並不需要全天不間斷運行,最好只是在有客戶機連接的時候才啓用,因此可以將rsync交給超級服務xinetd管理,只要修改相應配置並啓動xinetd服務,就可以提供rsync服務了。也就是當xinetd服務接收到客戶端的同步請求後,會把rsync同步請求轉給rsync程序。


配置方法:

wKioL1M4CdjBV9UOAABd2T6xpVU502.jpg


wKiom1M4CgHCrwGgAADUltMpOsc910.jpg

修改後內容如下:

注:將disable = yes改爲no;確信有- -daemon服務選項.


安裝xinetd服務軟件包:

wKiom1M4CgLg1JcXAABLobgLi2k741.jpg


啓動xinetd服務:

wKioL1M4CdyT9rJoAABul18h160131.jpg


至此rsync備份源配置完畢,下面使用rsync備份工具實現備份操作。

格式1:rsync 選項用戶名@備份源服務器IP::共享模塊名目標目錄

格式2:rsync 選項  rsync://用戶名@備份源服務器IP/共享模塊名目標目錄

在客戶機上執行rsync命令實現下行同步操作:

wKiom1M4CgSRnwp8AAEmVOJVa1g055.jpg


wKioL1M4Cd3gEBIxAAEr8h9KCUg563.jpg


編寫rsync備份腳本:

rsync備份源的無交互驗證,對於rsync備份源來說,可使用環境變量RSYNC_PASSWORD來存放密碼。執行rsync備份任務時,會自動讀取該變量,並在需要時發送給rsync源服務器來進行驗證。如下所示:

wKiom1M4CgvgfRSFAAEy5YH8arM506.jpg

wKioL1M4Cd6TrOvgAABLTqGJGb4716.jpg


Rsync備份腳本如下:

wKioL1M4CeOxb5BGAAA_28_3LLc706.jpg


內容如下

wKiom1M4CgeTx2BRAACt5nIVPms804.jpg


對建好的備份腳本設置適當權限:

wKiom1M4CgjBa020AAA961_JqeQ294.jpg


設置計劃任務,在crond計劃任務中按指定計劃執行腳本。

到此rsync備份源配置完畢。

由於篇幅過長,影響各位看官閱讀質量,故將"rsync+inotify實時同步"放到下篇博文中進行介紹.





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章