對於rsync服務器來講,最重要和複雜的就是它的配置了。rsync服務器的配置文件爲/etc/rsyncd.conf,其控制認證、訪問、日誌記錄等等。mysql
注意:rsync在安裝完畢後,不想mysql、nginx、apache那樣會給你一個,該配置文件的模版。linux
該文件只能經過手工建立nginx
該文件是由一個或多個模塊結構組成。一個模塊定義是以方括弧中的模塊名開始,直到下一個模塊定義開始或者文件結束。web
模塊中包含格式爲name = value的參數定義。每一個模塊其實就對應須要備份的一個目錄樹,比方說在咱們的實際環境中,有三個目錄樹須要備份:/www/、/home/web_user1/和/home/web_user2/,那麼就須要在配置文件中定義三個模塊,分別對應三個目錄樹。sql
配置文件是行爲單位的,也就是說每一個新行都表示一個新的註釋、模塊定義或者參數賦值。以#開始的行表示註釋,以""結束的行表示下面一行是該行的繼續。參數賦值中等號後多是一個大小寫不敏感的字符串、一個以trure/false或者yes/no表示的布爾值。apache
全局參數安全
在文件中[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。