rsync 遠程數據同步工具詳解

rysnc 命令用法:(OPTION-參數,USER-用戶,HOST-IP地址,SRC-複製源位置,DEST-複製目標位置)
Shell拉:rsync [OPTION] [USER@]HOST:SRC [DEST]
rsync拉:rsync [OPTION] [USER@]HOST::[MODULE] [DEST]
Shell推:rsync [OPTION] SRC [USER@]HOST:DEST
rsync推:rsync [OPTION] SRC [USER@]HOST::DESTnginx

 

rsync 命令經常使用參數
-a 遞歸方式傳輸文件,並保持文件屬性,等價-rlptgoD不包含-H
-r 子目錄以遞歸模式處理
-l 保持符號連接文件
-H 保持硬連接文件
-p 保持文件權限
-t 保持文件時間信息
-g 保持文件歸屬組信息
-o 保持文件歸屬用戶信息
-D 保持設備文件和特殊文件
-z 在傳輸文件時進行壓縮處理
--exclude=PATTERN 指定排除一個不須要傳輸文件匹配模式
--exclude-from=FILE 從FILE中讀取排除規則
--include=PATTERN 指定須要傳輸的文件匹配模式
--include-from=FILE 從FILE中讀取匹配規則
--copy-unsafe-links 複製指向複製源路徑目錄之外的連接文件
--safe-links 忽略指向複製源路徑目錄之外的連接文件(默認)
--existing 僅更新那些已經存在於接收端的文件,而不復制新建立文件
--ignore-existing 忽略那些已經存在於接收端的文件,只複製新建立文件
-b 當有變化時,對目標目錄中的舊文件進行備份
--backup-dir=DIR 與-b結合使用,指定備份路徑
--link-dest=DIR 當文件未改變時在指定路徑建立硬連接文件
--delete 刪除接收端還存在而保存端不存在的文件
--delete-before 接收端在傳輸以前進行刪除操做(默認)
--delete-during 接收端在傳輸過程當中進行刪除操做
--delete-after 接收端在傳輸以後進行刪除操做
--delete-excluded 接收端在傳輸同時進行刪除操做
--e,--rsh=COMMAND 指定代替rsh的shell程序
--ignore-erros 即便出現I/O錯誤也要進行刪除
--partial 保留因故沒有徹底傳輸的文件,以加快隨後的再次傳輸
--progress 在傳輸時顯示傳輸過程
-p 等價於—partial—progress
--delay-updates 將正在更新的文件先保存到.~tmp~臨時目錄,待傳輸完畢再更新目標文件
-v,--verbose 詳細輸出模式
-q,--quiet 精簡輸出模式
-h,--human-readable 輸出文件大小
-n,--dry-run 顯示那些文件將要被傳輸
--list-only 僅列出文件而不進行復制
--rsync-path=PROGRAM 指定遠程服務器上的rsync命令所在路徑
--password-file=FILE 指定從FILE中讀取口令,避免在終端中輸入口令
-4,-6 使用IPv4或者IPv6
--version 打印版本信息
--help 顯示幫組信息shell

 

 

注意:若用普通用戶身份運行rsync命令,同步後的文件的屬主將改變爲這個普通用戶身份;若用超級用戶身份運行rsync命令同步後文件屬性保持原來用戶身份不變。若指定-tg但目標計算機沒有指定用戶和組,則複製的文件納入501用戶 501組安全

 

 

rsync 服務
啓動RSYNC: #vi /etc/xinetd.d/rsync  把disable = YES改爲NO
service rsync
{
        disable = no
        socket_type     = stream
        wait            = no
        user            = root
        server          = /usr/bin/rsync
        server_args     = --daemon
        log_on_failure  += USERID
}服務器

 

 

 

 

rsync 配置
rsync服務器能夠獨立運行也能夠由xinetd運行,CentOS默認以xinetd運行,同時默認監聽873端口。須要建立rsync配置文件 vi /etc/rsyncd.conf
在文件中[module]以外的全部配置行都是全局參數,也能夠在全局參數部分定義模塊參數,模塊參數主要功能定義哪一個目錄要被同步,能夠根據須要來定義多個模塊
secrets file = /etc/rsyncd.secrets
read only = yes
list=yes
uid = nobody
gid = nobody
max connections = 10
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log併發

[MODULE]  --能夠用別名,能夠建立多個單元
    comment = tranlate nginx from 151
    path = /usr/local/www/supe/
    auth users = root
    uid = root
    gid = root
    secrets file = /etc/rsyncd.secrets
    read only = nosocket

 

全局參數
address 指定的服務器運行的IP地址。由xinetd運行時將忽略此參數
port 指定rsync守護進程監聽端口號(默認873)。由xinetd運行時將忽略此參數
motd file 指定一個消息文件,當客戶鏈接服務器時該文件內容將顯示給客戶
pid file rsync的守護進程將其PID寫入指定的文件
log file 指定守護進程的日誌文件,而不將日誌發給syslog
syslog facility 指定發送日誌消息給syslog時的消息級別
socket options 自定義tcp選項
 tcp

基本模塊參數
path 指定當前模塊在rsync服務器上的同步路徑,必須指定
comment 給模塊指定一個描述ui

控制模塊參數
use 默認爲true,傳輸文件以前先chroot到path參數所指定的目錄下,這樣作實現額外的安全防禦,但缺點須要root權限,而且不能備份指向path外部的符號連接所指向的目錄文件
uid 制定該模塊已指定的UID傳輸文件
gid 指定該模塊已指定的GID文件
max connections 限制最大鏈接併發數以保護服務器,超過限制則提示稍後操做
lock file 指定支持max connections參數的鎖文件,默認/etc/run/rsyncd.lock
list 指定當客戶請求列出可使用的模塊列表時(默認ture),該模塊是否被列出。若是false,能夠建立隱藏的模塊
read only 是否也許客戶上傳文件,默認ture則不也許上傳。爲false而且服務器目錄具備讀寫權限則容許上傳
write only 是否也許客戶上傳文件,默認ture則不也許下載。爲false而且服務器目錄具備讀寫權限則容許下載
ignore errors 指定rsync服務器在運行delete操做時是否忽略I/O錯誤
ignore nonreadable 指定rysnc服務器忽略那些沒有訪問文件權限的用戶
timeout 設定鏈接超時時間,單位爲秒
dont compress 告訴rysnc那些文件在傳輸前不用壓縮,默認已設定壓縮包再也不進行壓縮
refuse options 定義一些不容許客戶對該模塊使用的命令選項列表日誌

文件篩選模塊參數
exclude 指定排除的多個文件或目錄,由空格隔開
exclude from 從指定文件中讀取排除規則
include 指定包含複製多個文件或者目錄,由空格隔開
include from 從指定文件中讀取包含規則server

用戶認證模塊參數
auth users 指定用戶才容許鏈接該模塊
secrets file 指定一個口令認證文件
strict modes 指定是否檢測口令文件權限。rsync認證口令文件權限必定是600

訪問控制參數
hosts allow 指定哪些IP能夠訪問該模塊
hosts deny 指定哪些IP不能夠訪問該模塊

 

設置隨系統啓動rsync#chkconfig rsync on

相關文章
相關標籤/搜索