rsync 同步配置

rsync 簡介

rsyncremote synchronize)是一個遠程數據同步工具,可通過 LAN/WAN 快速同步多臺主機之間的文

件。也可以使用 rsync 同步本􀨄硬盤中的不同目錄。

rsync 是用於替代 rcp 的一個工具,rsync 使用所謂的 rsync算法 進行數據同步,這種算法只傳送兩個文件

的不同部分,而不是每次都整份傳送,因此速度相當快。您可以參考 How Rsync Works A Practical Overview 進一步瞭解 rsync 的運作機制。

    rsync 的初始作者是 Andrew Tridgell 和 Paul Mackerras,目前由[url]http://rsync.samba.org[/url] 維護。rsync 支持大多數的類 Unix 系統,無論是LinuxSolaris 還是 BSD上 都經過了良好的測試。 CentOS系統默認就安裝了 rsync 軟件包。 此外,在 windows 平臺下也有相應的版本,如 cwrsync DeltaCopy 等。

 

rsync 具有如下的􀫎本特性:

1. 可以鏡像保存整個目錄樹和文件系統

2. 可以很容易做到保持原來文件的權限、時間、軟硬鏈接等

3. 無須特殊權限即可安裝

4. 優化的流程,文件傳輸效率高

5. 可以使用 rshssh 方式來傳輸文件,當然也可以通過直接的 socket 連接

6. 支持匿名傳輸,以方便進行網站鏡象

 

在使用 rsync 進行遠程同步時,可以使用兩種方式:遠程 Shell 方式(建議使用 ssh,用戶驗證由 ssh 

責)和 C/S 方式(即客戶連接遠程 rsync 服務器,用戶驗證由 rsync 服務器負責)。

 

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 指定使用rshssh方式進行數據同步
--rsync-path=PATH      指定遠程服務器上的rsync命令所在路徑信息
-C, --cvs-exclude          使用和CVS一樣的方法自動忽略文件,用來排除那些不希望傳輸的文件
--existing                      僅僅更新那些已經存在於DST的文件,而不備份那些新創建的文件
--delete                         刪除那些DSTSRC沒有的文件
--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                    顯示幫助信息

配置文件自己創建

在/etc 下創建 rsyncd.conf文件 輸入以下內容 (服務端)
 
 
#rsync --daemon  --config=/etc/rsyncd.conf
#全局選項
 
strict modes =yes
# 是否檢查口令文件的權限
 
port = 873
# 默認端口873
 
log file = /var/log/rsyncd.log
# 日誌記錄文件
 
pid file = /var/run/rsyncd.pid
# 運行進程的ID寫到哪裏
 
#模塊選項
 
[public]
# 這裏是認證的模塊名,在client端需要指定
 
max connections = 5
# 客戶端最大連接數,默認0(沒限制)
 
uid = root
# 指定該模塊傳輸文件時守護進程應該具有的uid
 
gid = root
# 指定該模塊傳輸文件時守護進程應該具有的gid
 
path = /home/level2/rawfiles/public
# 需要做備份的目錄
 
ignore errors
# 可以忽略一些無關的IO錯誤
 
read only = no
# no客戶端可上傳文件,yes只讀
 
write only = no
# no客戶端可下載文件,yes不能下載
 
hosts allow = *
# 充許任何主機連接
 
#hosts deny = 10.5.3.1
# 禁止指定的主機連接
 
auth users = work
# 認證的用戶名,如果沒有這行,則表明是匿名
 
secrets file = /etc/backserver.pas
# 指定認證口令文件位置
 
==================================================================
服務端/etc/backserver.pas
work:123456
客戶端/etc/backserver.pas
123456
權限
chmod 600 /etc/backserver.pas
 
同步腳本
/usr/bin/rsync -vzrtopg --progress [email protected]::public /home/level2/rawfiles/public --password-file=/etc/backserver.pas
權限:chmod 755 .sync.sh
 
添加計劃任務
crontab -e
*/5 * * * 1-5 /home/scz/.sync.sh
 
開機自啓動
echo "/usr/bin/rsync --daemon" >>/etc/rc.local
 
例如:服務端 (111111)客戶端(work:111111)
 
 
 
rsync -auqz --progress 是指把數據向別的服務器推
 

rsync -vzrtopg --progress 是指往別的服務器拉數據 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章