1.rsyncd.conf配置檔案
1.1 全局參數
在[moudle]之前的參數都是全局參數,也可以在全局參數下定義部分子產品參數,這時該參數的值就是所有子產品的預設值。
port:指定背景程式使用的端口号,預設是873
log file:指定rsync的日志檔案,而不把日志發送給syslog
pid file:指定rsync的pid檔案,通常指定為/var/run/rsyncd.pid
motd file:用來指定一個消息檔案,當客戶連接配接伺服器時,将該檔案内容顯示給客戶,預設是沒有該檔案的
1.2子產品參數
主要定義伺服器哪個目錄需要被同步。其格式必須為[moudle]形式,這個名字是在rsync用戶端看到的名字,而伺服器真正同步的資料是通過path 來指定的,我們可以通過根據自己的需要,來指定多個子產品,子產品中可以定義以下參數:
comment:給子產品指定一個描述,該描述連同子產品名在客戶連接配接得到子產品清單時顯示給客戶,預設是沒有描述定義
path:指定該子產品的供備份的目錄樹路徑,該參數是必須指定的
use chroot:如果“use chroot”指定為true,那麼rsync在傳輸檔案以前首先chroot到path參數所指定的目錄下。這樣做的原因是實作額外的安全防護,但是缺 點是需要root權限,并且不能備份指向外部的符号連接配接所指向的目錄檔案,預設情況下chroot的值為true
uid:該選項指定當該子產品傳輸檔案時守護程序應該具有的uid,配合gid選項使用可以确定哪些可以通路怎麼樣的檔案權限,預設值是“nobody”
gid:該選項指定當該子產品傳輸檔案時守護程序應該具有的gid,預設值是“nobody”
max connections:指定該子產品的最大并發連接配接數量以保護伺服器,超過限制的連接配接請求被告知随後再試。預設值是0,也就是沒有限制。
list:該選項設定當客戶請求可以使用的子產品清單時,該子產品是否應該被列出。如果該選項設定為false,可以建立隐藏的子產品,預設值為true。
read only:該選項設定是否允許客戶上載檔案,如果為true那麼所有的上載請求都會失敗,如果為false并且伺服器目錄讀寫權限允許那麼上載是允許的,預設值為true。
exclude:用來指定多個空格隔開的多個檔案或目錄(相對路徑),并将其添加到exclude清單中,這等同于在用戶端的指令中使用-exclude 來指定模式,一個子產品隻能指定一個exclude選項,但是需要注意的一點是該選項有一定的安全性問題,客戶很有可能繞過exclude清單,如果希望保 持特定的檔案不能被通路,那就最好結合uid/gid一起使用。
exclude from:指定一個包含exclude模式的定義的檔案名,伺服器從該檔案中讀取exclude清單定義
include :用來指定不排除符合要求的檔案或目錄,這等同于在用戶端指令中使用-include來指定模式,結合include和exclude可以定義複雜的exclude/include規則
include from:指定一個包含include模式的定義的檔案名,伺服器從該檔案中讀取include清單定義。
auth users:該選項指定由空格或逗号分隔的使用者清單,隻有這些使用者才允許連接配接該子產品,這裡的使用者和系統使用者沒有任何關系,如果“auth users”被設定,那麼用戶端發出對該子產品的連接配接請求以後會被rsync請求challenged進行驗證身份,這裡使用的 challenge/response認證協定,使用者的名和密碼以明文方式存放在“secret file”選項指定的檔案中,預設情況下無需密碼就可以連接配接子產品,也就是匿名模式
secrets file:該選項指定一個包含定義使用者名:密碼對的檔案,隻有在“auth users”被定義的時候,該檔案才有作用,檔案每行包含一個username:passwd對。一般來說密碼最好不要超過8個字元。沒有預設的 secures file名,需要限式指定一個(例如:/etc/rsyncd.passwd)。注意:該檔案的權限一定要是600,否則用戶端将不能連接配接伺服器。
stick modes:該選項指定是否監測密碼檔案的權限,如果該選項值為true,那麼密碼檔案隻能被rsync伺服器運作身份的使用者通路,其他任何使用者不能通路該檔案,預設值為true
hosts allow: 該選項指定哪些IP的客戶允許連接配接該子產品。客戶模式定義可以是以下形式:
單個IP位址,例如:192.167.0.1
整個網段,例如:192.168.0.0/24,也可以是192.168.0.0/255.255.255.0
多個IP或網段需要用空格隔開,“*”則表示所有,預設是允許所有主機連接配接。
hosts deny: 指定不允許連接配接rsync伺服器的機器,可以使用hosts allow的定義方式來進行定義。預設是沒有hosts deny定義。
ignore errors: 指定rsyncd在判斷是否運作傳輸時的删除操作時忽略server上的IO錯誤,一般來說rsync在出現IO錯誤時将将跳過–delete操作,以防止因為暫時的資源不足或其它IO錯誤導緻的嚴重問題。
ignore nonreadable:指定rsync伺服器完全忽略那些使用者沒有通路權限的檔案,這對于在需要備份的目錄中有些檔案所不應該被備份者得到的情況下是有意義的
lock file 指定支援max connections參數的鎖檔案,預設值是/var/run/rsyncd.lock。
transfer logging 使rsync伺服器使用ftp格式的檔案來記錄下載下傳和上載操作在自己單獨的日志中。
timeout 通過該選項可以覆寫客戶指定的IP逾時時間。通過該選項可以確定rsync伺服器不會永遠等待一個崩潰的用戶端。逾時機關為秒鐘,0表示沒有逾時定義,這也是預設值。對于匿名rsync伺服器來說,一個理想的數字是600。
refuse options 通過該選項可以定義一些不允許客戶對該子產品使用的指令參數清單。這裡必須使用指令全名,而不能是簡稱。但發生拒絕某個指令的情況時伺服器将報告錯誤資訊然後退出。如果要防止使用壓縮,應該是:” dont compress = *” 。
dont compress 用來指定那些不進行壓縮處理再傳輸的檔案,預設值是*.gz *.tgz *.zip *.z *.rpm *.deb *.iso *.bz2 *.tbz
2.Rsync指令
在對rsync伺服器配置結束以後,下一步就需要在用戶端發出rsync指令來實作将伺服器端的檔案備份到用戶端來。rsync是一個功能非常強大的工具,其指令也有很多功能特色選項,我們下面就對它的選項一一進行分析說明。SRC源伺服器、DEST目标伺服器。
Rsync的指令格式可以為以下六種:
rsync [OPTION]… SRC DEST
rsync [OPTION]… SRC [USER@]HOST:DEST
rsync [OPTION]… [USER@]HOST:SRC DEST
rsync [OPTION]… [USER@]HOST::SRC DEST
rsync [OPTION]… SRC [USER@]HOST::DEST
rsync [OPTION]… rsync://[USER@]HOST[:PORT]/SRC [DEST]
1)拷貝本地檔案:當SRC和DEST路徑資訊都不包括單個冒好“:”分隔符時就啟動這種工作模式,如:rsync -a /data /backup
2)使用一個遠端的shell程式(如rsh,ssh)來實作将本地機器的内容拷貝到遠端機器。當DEST路徑包括單個冒号“:”分隔符,就啟動這種工作模式,如:rsync -avz *.c foo:src
3)使用一個遠端的shell程式(如rsh,ssh)來實作将遠端機器的内容拷貝到本地機器。當SRC路徑包含單個冒号“:” 分隔符,就器送這種工作模式,如:rsync -avz foo:src/bar /backup
4)從遠端rsync伺服器中拷貝檔案到本地機。當SRC路徑資訊包含” ::” 分隔符時啟動該模式。如:rsync -av [email protected]::www /databack
5)從本地機器拷貝檔案到遠端rsync伺服器中。當DST路徑資訊包含” ::” 分隔符時啟動該模式。如:rsync -av /databack [email protected]::www
6)列遠端機的檔案清單。這類似于rsync傳輸,不過隻要在指令中省略掉本地機資訊即可。如:rsync -v rsync://172.16.78.192/www
rsync參數的具體解釋如下:
-v, –verbose 詳細模式輸出
-q, –quiet 精簡輸出模式
-c, –checksum 打開校驗開關,強制對檔案傳輸進行校驗
-a, –archive 歸檔模式,表示以遞歸方式傳輸檔案,并保持所有檔案屬性,等于-rlptgoD
-r, –recursive 對子目錄以遞歸模式處理
-R, –relative 使用相對路徑資訊
-b, –backup 建立備份,也就是對于目的已經存在有同樣的檔案名時,将老的檔案重新命名為~filename。可以使用–suffix選項來指定不同的備份檔案字首。
–backup-dir 将備份檔案(如~filename)存放在在目錄下。
-suffix=SUFFIX 定義備份檔案字首
-u, –update 僅僅進行更新,也就是跳過所有已經存在于DST,并且檔案時間晚于要備份的檔案。(不覆寫更新的檔案)
-l, –links 保留軟鍊結
-L, –copy-links 想對待正常檔案一樣處理軟鍊結
–copy-unsafe-links 僅僅拷貝指向SRC路徑目錄樹以外的鍊結
–safe-links 忽略指向SRC路徑目錄樹以外的鍊結
-H, –hard-links 保留硬鍊結
-p, –perms 保持檔案權限
-o, –owner 保持檔案屬主資訊
-g, –group 保持檔案屬組資訊
-D, –devices 保持裝置檔案資訊
-t, –times 保持檔案時間資訊
-S, –sparse 對稀疏檔案進行特殊處理以節省DST的空間
-n, –dry-run現實哪些檔案将被傳輸
-W, –whole-file 拷貝檔案,不進行增量檢測
-x, –one-file-system 不要跨越檔案系統邊界
-B, –block-size=SIZE 檢驗算法使用的塊尺寸,預設是700位元組
-e, –rsh=COMMAND 指定使用rsh、ssh方式進行資料同步
–rsync-path=PATH 指定遠端伺服器上的rsync指令所在路徑資訊
-C, –cvs-exclude 使用和CVS一樣的方法自動忽略檔案,用來排除那些不希望傳輸的檔案
–existing 僅僅更新那些已經存在于DST的檔案,而不備份那些新建立的檔案
–delete 删除那些DST中SRC沒有的檔案
–delete-excluded 同樣删除接收端那些被該選項指定排除的檔案
–delete-after 傳輸結束以後再删除
–ignore-errors 及時出現IO錯誤也進行删除
–max-delete=NUM 最多删除NUM個檔案
–partial 保留那些因故沒有完全傳輸的檔案,以是加快随後的再次傳輸
–force 強制删除目錄,即使不為空
–numeric-ids 不将數字的使用者群組ID比對為使用者名群組名
–timeout=TIME IP逾時時間,機關為秒
-I, –ignore-times 不跳過那些有同樣的時間和長度的檔案
–size-only 當決定是否要備份檔案時,僅僅察看檔案大小而不考慮檔案時間
–modify-window=NUM 決定檔案是否時間相同時使用的時間戳視窗,預設為0
-T –temp-dir=DIR 在DIR中建立臨時檔案
–compare-dest=DIR 同樣比較DIR中的檔案來決定是否需要備份
-P 等同于 –partial
–progress 顯示備份過程
-z, –compress 對備份的檔案在傳輸時進行壓縮處理
–exclude=PATTERN 指定排除不需要傳輸的檔案模式
–include=PATTERN 指定不排除而需要傳輸的檔案模式
–exclude-from=FILE 排除FILE中指定模式的檔案
–include-from=FILE 不排除FILE指定模式比對的檔案
–version 列印版本資訊
–address 綁定到特定的位址
–config=FILE 指定其他的配置檔案,不使用預設的rsyncd.conf檔案
–port=PORT 指定其他的rsync服務端口
–blocking-io 對遠端shell使用阻塞IO
-stats 給出某些檔案的傳輸狀态
–progress 在傳輸時現實傳輸過程
–log-format=formAT 指定日志檔案格式
–password-file=FILE 從FILE中得到密碼
–bwlimit=KBPS 限制I/O帶寬,KBytes per second
-h, –help 顯示幫助資訊
本文轉自 yntmdr 51CTO部落格,原文連結:http://blog.51cto.com/yntmdr/1593551,如需轉載請自行聯系原作者