1. 程式人生 > >002.Rsync詳細配置項

002.Rsync詳細配置項

一 相關引數

全域性引數 在檔案中[module]之前的所有引數都是全域性引數,當然也可以在全域性引數部分定義模組引數,這時候該引數的值就是所有模組的預設值。 port 指定後臺程式使用的埠號,預設為873。 motd file "motd file"引數用來指定一個訊息檔案,當客戶連線伺服器時該檔案的內容顯示給客戶,預設是沒有motd檔案的。 log file "log file"指定rsync的日誌檔案,而不將日誌傳送給syslog。比如可指定為“/var/log/rsyncd.log”。 pid file
指定rsync的pid檔案,通常指定為“/var/run/rsyncd.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。 模組引數 主要是定義伺服器哪個目錄要被同步。其格式必須為“[module]”形式,這個名字就是在rsync 客戶端看到的名字,其實有點象Samba伺服器提供的共享名。而伺服器真正同步的資料是通過 path 來指定的。我們可以根據自己的需要,來指定多個模組,模組中可以定義以下引數:
comment 給模組指定一個描述,該描述連同模組名在客戶連線得到模組列表時顯示給客戶。預設沒有描述定義。 path 指定該模組的供備份的目錄樹路徑,該引數是必須指定的。 use chroot 如 果"use chroot"指定為true,那麼rsync在傳輸檔案以前首先chroot到path引數所指定的目錄下。這樣做的原因是實現額外的安全防護,但是缺 點是需要以roots許可權,並且不能備份指向外部的符號連線所指向的目錄檔案。預設情況下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認證協議。使用者的名和密碼以明文方式存放在"secrets file"選項指定的檔案中。預設情況下無需密碼就可以連線模組(也就是匿名方式)。 secrets file 該選項指定一個包含定義使用者名稱:密碼對的檔案。只有在"auth users"被定義時,該檔案才有作用。檔案每行包含一個username:passwd對。一般來說密碼最好不要超過8個字元。沒有預設的 secures file名,需要限式指定一個(例如:/etc/rsyncd.passwd)。注意:該檔案的許可權一定要是600,否則客戶端將不能連線伺服器。 strict 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 指定rysnc伺服器完全忽略那些使用者沒有訪問許可權的檔案。這對於在需要備份的目錄中有些檔案是不應該被備份者得到的情況是有意義的。 lock file 指定支援max connections引數的鎖檔案,預設值是/var/run/rsyncd.lock。 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

二 相關命令

     -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 顯示幫助資訊