1. 程式人生 > >rsync配置文件詳解

rsync配置文件詳解

後退 用戶 正常 微軟 als 目錄文件 判斷 8.0 壓縮

對於rsync服務器來說,最重要和復雜的就是它的配置了。rsync服務器的配置文件為/etc/rsyncd.conf,其控制認證、訪問、日誌記錄等等。

註意:rsync在安裝完畢後,不想mysql、nginx、apache那樣會給你一個,該配置文件的模版。

該文件只能通過手工創建

該文件是由一個或多個模塊結構組成。一個模塊定義是以方括弧中的模塊名開始,直到下一個模塊定義開始或者文件結束。

模塊中包含格式為name = value的參數定義。每個模塊其實就對應需要備份的一個目錄樹,比方說在我們的實際環境中,有三個目錄樹需要備份:/www/、/home/web_user1/和/home/web_user2/,那麽就需要在配置文件中定義三個模塊,分別對應三個目錄樹。

配置文件是行為單位的,也就是說每個新行都表示一個新的註釋、模塊定義或者參數賦值。以#開始的行表示註釋,以""結束的行表示下面一行是該行的繼續。參數賦值中等號後可能是一個大小寫不敏感的字符串、一個以trure/false或者yes/no表示的布爾值。

全局參數

在文件中[modlue]之前的所有參數都是全局參數,當然也可以在全局參數部分定義模塊參數,這時候該參數的值就是所有模塊的默認值。

motd file

"motd file"參數用來指定一個消息文件,當客戶連接服務器時該文件的內容顯示給客戶,默認是沒有motd文件的。該文件有無都不影響rsync的正常使用。

log file

"log file"指定rsync的日誌文件,而不將日誌發送給syslog。

pid file

指定rsync的pid文件。

syslog facility

指定rsync發送日誌消息給syslog時的消息級別,常見的消息級別是:uth, authpriv, cron, daemon, ftp, kern, lpr, mail, news, security, sys-log, user, uucp, local0, local1, local2, local3,local4, local5, local6和local7。默認值是daemon。

模塊參數

在全局參數之後就需要定義一個或多個模塊了,模塊中可以定義以下參數:

comment

給模塊指定一個描述,該描述連同模塊名在客戶連接得到模塊列表時顯示給客戶。默認沒有描述定義。

path

指定該模塊的供備份的目錄樹路徑,該參數是必須指定的。

use chroot

如果"use chroot"指定為true,那麽rsync在傳輸文件以前首先chroot到path參數所指定的目錄下。這樣做的原因是實現額外的安全防護,但是缺點是需要root權限,並且不能備份指向外部的符號連接所指向的目錄文件。默認情況下chroot值為true。

max connections

指定該模塊的最大並發連接數量以保護服務器,超過限制的連接請求將被告知隨後再試。默認值是0,也就是沒有限制。

lock file

指定支持max connections參數的鎖文件,默認值是/var/run/rsyncd.lock。

read only

該選項設定是否允許客戶上載文件。如果為true那麽任何上載請求都會失敗,如果為false並且服務器目錄讀寫權限允許那麽上載是允許的。默認值為true。

list

該選項設定當客戶請求可以使用的模塊列表時,該模塊是否應該被列出。如果設置該選項為false,可以創建隱藏的模塊。默認值是true。

uid

該選項指定當該模塊傳輸文件時守護進程應該具有的uid,配合gid選項使用可以確定哪些可以訪問怎麽樣的文件權限,默認值是"nobody"。

gid

該選項指定當該模塊傳輸文件時守護進程應該具有的gid。默認值為"nobody"。

exclude

用來指定多個由空格隔開的多個模式列表,並將其添加到exclude列表中。這等同於在客戶端命令中使用--exclude來指定模式,不過配置文件中指定的exclude模式不會傳遞給客戶端,而僅僅應用於服務器。一個模塊只能指定一個exclude選項,但是可以在模式前面使用"-"和"+"來指定是exclude還是include。

但是需要註意的一點是該選項有一定的安全性問題,客戶很有可能繞過exclude列表,如果希望確保特定的文件不能被訪問,那就最好結合uid/gid選項一起使用。

exclude from

指定一個包含exclude模式的定義的文件名,服務器從該文件中讀取exclude列表定義。

include

用來指定多個由空格隔開的多個rsync並應該exlude的模式列表。這等同於在客戶端命令中使用--include來指定模式,結合include和exclude可以定義復雜的exclude/include規則 。一個模塊只能指定一個include選項,但是可以在模式前面使用"-"和"+"來指定是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名,需要限式指定一個。(例如:/etc/rsyncd.secrets)

strict modes

該選項指定是否監測密碼文件的權限,如果該選項值為true那麽密碼文件只能被rsync服務器運行身份的用戶訪問,其他任何用戶不可以訪問該文件。默認值為true。

hosts allow

該選項指定哪些IP的客戶允許連接該模塊。客戶模式定義可以是以下形式:

xxx.xxx.xxx.xxx,客戶主機只有完全匹配該IP才允許訪問。例如:192.167.0.1

a.b.c.d/n,屬於該網絡的客戶都允許連接該模塊。例如:192.168.0.0/24

a.b.c.d/e.f.g.h,屬於該網絡的客戶都允許連接該模塊。例如:192.168.0.0/255.255.255.0

一個主機名,客戶主機只有擁有該主機名才允許訪問,例如:backup.linuxaid.com.cn。

*.linuxaid.com.cn,所有屬於該域的主機都允許。

默認是允許所有主機連接。

hosts deny

指定不允許連接rsync服務器的機器,可以使用hosts allow的定義方式來進行定義。默認是沒有hosts deny定義。

ignore errors

指定rsyncd在判斷是否運行傳輸時的刪除操作時忽略server上的IP錯誤,一般來說rsync在出現IO錯誤時將將跳過--delete操作,以防止因為暫時的資源不足或其它IO錯誤導致的嚴重問題。

ignore nonreadable

指定rysnc服務器完全忽略那些用戶沒有訪問權限的文件。這對於在需要備份的目錄中有些文件是不應該被備份者得到的情況是有意義的。

transfer logging

使rsync服務器使用ftp格式的文件來記錄下載和上載操作在自己單獨的日誌中。

log format

通過該選項用戶在使用transfer logging可以自己定制日誌文件的字段。其格式是一個包含格式定義符的字符串,可以使用的格式定義符如下所示:

%h 遠程主機名

%a 遠程IP地址

%l 文件長度字符數

%p 該次rsync會話的進程id

%o 操作類型:"send"或"recv"

%f 文件名

%P 模塊路徑

%m 模塊名

%t 當前時間%u 認證的用戶名(匿名時是null)

%b 實際傳輸的字節數

%c 當發送文件時,該字段記錄該文件的校驗碼

默認log格式為:"%o %h [%a] %m (%u) %f %l",一般來說,在每行的頭上會添加"%t [%p] "。在源代碼中同時發布有一個叫rsyncstats的perl腳本程序來統計這種格式的日誌文件。

timeout

通過該選項可以覆蓋客戶指定的IP超時時間。通過該選項可以確保rsync服務器不會永遠等待一個崩潰的客戶端。超時單位為秒鐘,0表示沒有超時定義,這也是默認值。對於匿名rsync服務器來說,一個理想的數字是600。

refuse options

通過該選項可以定義一些不允許客戶對該模塊使用的命令參數列表。這裏必須使用命令全名,而不能是簡稱。但發生拒絕某個命令的情況時服務器將報告錯誤信息然後退出。如果要防止使用壓縮,應該是:"dont compress = *"。

dont compress

用來指定那些不進行壓縮處理再傳輸的文件,默認值是*.gz *.tgz *.zip *.z *.rpm *.deb *.iso *.bz2 *.tbz。

rsync配置文件詳解