rsync 參數說明及使用參數筆記好文摘抄


一.前言

最近發現rsync挺好用的……不過參數有點多,所以這兒寫一篇給自己以后要用的時候做個參考。

二.參數說明

這兒全是我翻資料連蒙帶猜(有些實在是不好解釋)翻譯出來的,請各位轉載的留個名啊,雖然不是多高端的,但是也賊煩

①.daemon(服務端)模式:

②.普通(客戶端)模式:

 

三.服務端配置

服務端配置文件默認位置/etc/rsyncd.conf

分為兩塊,最開頭的是全局參數,部分可以由daemon進程運行參數覆蓋,如下

參數 說明 默認值
address 在獨立運行時,用於指定的服務器運行的 IP 地址。由 xinetd 運行時將忽略此參數,使用命令行上的 –address 選項替代。 本地所有IP
port 指定 rsync 守護進程監聽的端口號。 由 xinetd 運行時將忽略此參數,使用命令行上的–port 選項替代。 873
motd file 指定一個消息文件,當客戶連接服務器時該文件的內容顯示給客戶。
pid file rsync 的守護進程將其 PID 寫入指定的文件。
log file 指定 rsync 守護進程的日志文件,而不將日志發送給 syslog。
syslog facility 指定 rsync 發送日志消息給 syslog 時的消息級別。 daemon
socket options 指定自定義 TCP 選項。

另外的就是模塊參數了

1.基礎參數

參數 說明 默認值
path 指定當前模塊在 rsync 服務器上的同步路徑,該參數是必須指定的。
comment 給模塊指定一個描述,該描述連同模塊名在客戶連接得到模塊列表時顯示給客戶。

2.控制參數

參數 說明 默認值
use chroot 若為 true,則 rsync 在傳輸文件之前首先 chroot 到 path 參數所指定的目錄下。這樣做的原因是實現額外的安全防護,但是缺點是需要 root 權限,並且不能備份指向 path 外部的符號連接所指向的目錄文件。 true
uid 指定該模塊以指定的 UID 傳輸文件。 nobody
gid 指定該模塊以指定的 GID 傳輸文件。 nobody
max connections 指定該模塊的最大並發連接數量以保護服務器,超過限制的連接請求將被告知隨后再試。 0(沒有限制)
lock file 指定支持 max connections 參數的鎖文件。 /var/run/rsyncd.lock
list 指定當客戶請求列出可以使用的模塊列表時,該模塊是否應該被列出。如果設置該選項為 false,可以創建隱藏的模塊。 true
read only 指定是否允許客戶上傳文件。若為 true 則不允許上傳;若為 false 並且服務器目錄也具有讀寫權限則允許上傳。 true
write only 指定是否允許客戶下載文件。若為 true 則不允許下載;若為 false 並且服務器目錄也具有讀權限則允許下載。 false
ignore errors 指定 在 rsync 服務器上運行 delete 操作時是否忽略 I/O 錯誤。一般來說 rsync 在出現 I/O 錯誤時將將跳過 –delete 操作,以防止因為暫時的資源不足或其它 I/O 錯誤導致的嚴重問題。 true
ignore nonreadable 指定 rysnc 服務器完全忽略那些用戶沒有訪問權限的文件。這對於在需要備份的目錄中有些不應該被備份者獲得的文件時是有意義的。 false
timeout 該選項可以覆蓋客戶指定的 IP 超時時間。從而確保 rsync 服務器不會永遠等待一個崩潰的客戶端。對於匿名 rsync 服務器來說,理想的數字是 600(單位為秒)。 0 (未限制)
dont compress 用來指定那些在傳輸之前不進行壓縮處理的文件。該選項可以定義一些不允許客戶對該模塊使用的命令選項列表。必須使用選項全名,而不能是簡稱。當發生拒絕某個選項的情況時,服務器將報告錯誤信息然后退出。例如,要防止使用壓縮,應該是:”dont compress = *”。 *.gz *.tgz *.zip *.z *.rpm *.deb *.iso *.bz2 *.tbz

3.文件過濾參數

參數 說明 默認值
exclude 指定多個由空格隔開的多個文件或目錄(相對路徑),並將其添加到 exclude 列表中。這等同於在客戶端命令中使用 –exclude 來指定模式。
exclude from 指定一個包含 exclude 規則定義的文件名,服務器從該文件中讀取 exclude 列表定義。
include 指定多個由空格隔開的多個文件或目錄(相對路徑),並將其添加到 include 列表中。這等同於在客戶端命令中使用 –include 來指定模式 。
include from 指定一個包含 include 規則定義的文件名,服務器從該文件中讀取 include 列表定義。
  • 一個模塊只能指定一個 exclude 參數、一個 include 參數。
  • 結合 include 和 exclude 可以定義復雜的 exclude/include 規則 。
  • 這幾個參數分別與相應的 rsync 客戶命令選項等價,唯一不同的是它們作用在服務器端。

4.用戶認證參數

參數 說明 默認值
auth users 指定由空格或逗號分隔的用戶名列表,只有這些用戶才允許連接該模塊。這里的用戶和系統用戶沒有任何關系。用戶名和口令以明文方式存放在 secrets file 參數指定的文件中。 (匿名方式)
secrets file 指定一個 rsync 認證口令文件。只有在 auth users 被定義時,該文件才起作用。
strict modes 指定是否監測口令文件的權限。若為 true 則口令文件只能被 rsync 服務器運行身份的用戶訪問,其他任何用戶不可以訪問該文件。 true
  • rsync 認證口令文件的權限一定是 600,否則客戶端將不能連接服務器。
  • rsync 認證口令文件中每一行指定一個"用戶名:口令"對,格式為:

 

5.訪問控制參數

參數 說明 默認值
hosts allow 用一個主機列表指定哪些主機客戶允許連接該模塊。不匹配主機列表的主機將被拒絕。 *
hosts deny 用一個主機列表指定哪些主機客戶不允許連接該模塊。

客戶主機列表定義可以是以下形式:

  • 單個IP地址。例如:192.168.0.1
  • 整個網段。例如:192.168.0.0/24,192.168.0.0/255.255.255.0
  • 可解析的單個主機名。例如:centos,centos.smartraining.cn
  • 域內的所有主機。例如:*.smartraining.cn
  • “*”則表示所有。
  • 多個列表項要用空格間隔。

6.日志參數

參數 說明 默認值
transfer logging 使 rsync 服務器將傳輸操作記錄到傳輸日志文件。 false
log format 指定傳輸日志文件的字段。 ”%o %h [%a] %m (%u) %f %l”

設置了”log file”參數時,在日志每行的開始會添加”%t [%p]“。

  • 可以使用的日志格式定義符如下所示:
    • %a - 遠程IP地址
    • %h - 遠程主機名
    • %l - 文件長度字符數
    • %p - 該次 rsync 會話的 PID
    • %o - 操作類型:”send” 或 “recv”
    • %f - 文件名
    • %P - 模塊路徑
    • %m - 模塊名
    • %t - 當前時間
    • %u - 認證的用戶名(匿名時是 null)
    • %b - 實際傳輸的字節數
    • %c - 當發送文件時,記錄該文件的校驗碼

這部分是網上看得,實在懶得翻譯man了,具體來源完全不知道,我看到那位仁兄也是轉載來的……

這兒拿我前一篇文章寫的舉個栗子方便解釋

 

四.客戶端命令

如果配置了密碼,請務必先丟個密碼文件,然后保證它的權限為600

 

 

這樣能列出服務端可同步的文件(如果搞單向同步你肯定就用不着這個了

然后手動同步我們可以這樣(當然手動是可以不指定password-file的,反正會提示你輸密碼,如果寫到腳本或者crontab里就必須帶上了)

敲黑板,P參數是給你看着玩的,不然鬼知道同步到啥程度了,寫腳本里就別帶了,單向傳輸腳本里如果要那個斷點續傳請自己做好命令返回狀態的判斷,因為單向傳輸是一次性的,如果是同步就沒必要了,畢竟你會隔陣子就運行

z是壓縮,如果你cpu不行或者需要降低資源消耗,可以帶上--compress-level來減小下壓縮率,0-9哦,從低到高資源消耗越來越大,當然你也可以不壓縮,文本內容我覺得開個1或者2就很給力了

五.常見錯誤

問題一:

問題二:

問題三:

問題四:

問題五:

問題六:

問題七:

問題八:

 

六.配合inotify使用

inotify我之前在搭建dns來同步配置的時候就用過——>傳送門

簡單的一個腳本,可以監控/data/目錄,遞歸模式,任何修改,刪除,創建,修改屬性的事件都會觸發同步並記錄到日志中,對於要自動化處理某些東西挺好用的


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM