rsync命令是一個(gè)遠(yuǎn)程數(shù)據(jù)同步工具,可通過lan/wan快速同步多臺(tái)主機(jī)間的文件。下面通過本文給大家分享linux 命令之rsync命令詳解,需要的朋友參考下吧
rsync命令
?rsync命令是一個(gè)遠(yuǎn)程數(shù)據(jù)同步工具,可通過LAN/WAN快速同步多臺(tái)主機(jī)間的文件。rsync使用所謂的“rsync算法”來使本地和遠(yuǎn)程兩個(gè)主機(jī)之間的文件達(dá)到同步,這個(gè)算法只傳送兩個(gè)文件的不同部分,而不是每次都整份傳送,因此速度相當(dāng)快。 rsync是一個(gè)功能非常強(qiáng)大的工具,其命令也有很多功能特色選項(xiàng),我們下面就對(duì)它的選項(xiàng)一一進(jìn)行分析說明。
語(yǔ)法
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]
對(duì)應(yīng)于以上六種命令格式,rsync有六種不同的工作模式:
拷貝本地文件。當(dāng)SRC和DES路徑信息都不包含有單個(gè)冒號(hào)”:”分隔符時(shí)就啟動(dòng)這種工作模式。如:rsync -a /data /backup
使用一個(gè)遠(yuǎn)程shell程序(如rsh、ssh)來實(shí)現(xiàn)將本地機(jī)器的內(nèi)容拷貝到遠(yuǎn)程機(jī)器。當(dāng)DST路徑地址包含單個(gè)冒號(hào)”:”分隔符時(shí)啟動(dòng)該模式。如:rsync -avz *.c foo:src
使用一個(gè)遠(yuǎn)程shell程序(如rsh、ssh)來實(shí)現(xiàn)將遠(yuǎn)程機(jī)器的內(nèi)容拷貝到本地機(jī)器。當(dāng)SRC地址路徑包含單個(gè)冒號(hào)”:”分隔符時(shí)啟動(dòng)該模式。如:rsync -avz foo:src/bar /data
從遠(yuǎn)程rsync服務(wù)器中拷貝文件到本地機(jī)。當(dāng)SRC路徑信息包含”::”分隔符時(shí)啟動(dòng)該模式。如:rsync -av root@192.168.78.192::www /databack
從本地機(jī)器拷貝文件到遠(yuǎn)程rsync服務(wù)器中。當(dāng)DST路徑信息包含”::”分隔符時(shí)啟動(dòng)該模式。如:rsync -av /databack root@192.168.78.192::www
列遠(yuǎn)程機(jī)的文件列表。這類似于rsync傳輸,不過只要在命令中省略掉本地機(jī)信息即可。如:rsync -v rsync://192.168.78.192/www
參數(shù)選項(xiàng)
-v,?--verbose?詳細(xì)模式輸出。? -q,?--quiet?精簡(jiǎn)輸出模式。? -c,?--checksum?打開校驗(yàn)開關(guān),強(qiáng)制對(duì)文件傳輸進(jìn)行校驗(yàn)。? -a,?--archive?歸檔模式,表示以遞歸方式傳輸文件,并保持所有文件屬性,等于-rlptgoD。? -r,?--recursive?對(duì)子目錄以遞歸模式處理。? -R,?--relative?使用相對(duì)路徑信息。? -b,?--backup?創(chuàng)建備份,也就是對(duì)于目的已經(jīng)存在有同樣的文件名時(shí),將老的文件重新命名為~filename。可以使用--suffix選項(xiàng)來指定不同的備份文件前綴。 --backup-dir?將備份文件(如~filename)存放在在目錄下。?-suffix=SUFFIX?定義備份文件前綴。? -u,?--update?僅僅進(jìn)行更新,也就是跳過所有已經(jīng)存在于DST,并且文件時(shí)間晚于要備份的文件,不覆蓋更新的文件。? -l,?--links?保留軟鏈結(jié)。? -L,?--copy-links?想對(duì)待常規(guī)文件一樣處理軟鏈結(jié)。? --copy-unsafe-links?僅僅拷貝指向SRC路徑目錄樹以外的鏈結(jié)。? --safe-links?忽略指向SRC路徑目錄樹以外的鏈結(jié)。? -H,?--hard-links?保留硬鏈結(jié)。? -p,?--perms?保持文件權(quán)限。? -o,?--owner?保持文件屬主信息。? -g,?--group?保持文件屬組信息。? -D,?--devices?保持設(shè)備文件信息。? -t,?--times?保持文件時(shí)間信息。? -S,?--sparse?對(duì)稀疏文件進(jìn)行特殊處理以節(jié)省DST的空間。? -n,?--dry-run現(xiàn)實(shí)哪些文件將被傳輸。? -w,?--whole-file?拷貝文件,不進(jìn)行增量檢測(cè)。? -x,?--one-file-system?不要跨越文件系統(tǒng)邊界。? -B,?--block-size=SIZE?檢驗(yàn)算法使用的塊尺寸,默認(rèn)是700字節(jié)。? -e,?--rsh=command?指定使用rsh、ssh方式進(jìn)行數(shù)據(jù)同步。 --rsync-path=PATH?指定遠(yuǎn)程服務(wù)器上的rsync命令所在路徑信息。? -C,?--cvs-exclude?使用和CVS一樣的方法自動(dòng)忽略文件,用來排除那些不希望傳輸?shù)奈募? --existing?僅僅更新那些已經(jīng)存在于DST的文件,而不備份那些新創(chuàng)建的文件。? --delete?刪除那些DST中SRC沒有的文件。? --delete-excluded?同樣刪除接收端那些被該選項(xiàng)指定排除的文件。 --delete-after?傳輸結(jié)束以后再刪除。? --ignore-errors?及時(shí)出現(xiàn)IO錯(cuò)誤也進(jìn)行刪除。? --max-delete=NUM?最多刪除NUM個(gè)文件。? --partial?保留那些因故沒有完全傳輸?shù)奈募允羌涌祀S后的再次傳輸。? --force?強(qiáng)制刪除目錄,即使不為空。? --numeric-ids?不將數(shù)字的用戶和組id匹配為用戶名和組名。? --timeout=time?ip超時(shí)時(shí)間,單位為秒。? -I,?--ignore-times?不跳過那些有同樣的時(shí)間和長(zhǎng)度的文件。? --size-only?當(dāng)決定是否要備份文件時(shí),僅僅察看文件大小而不考慮文件時(shí)間。? --modify-window=NUM?決定文件是否時(shí)間相同時(shí)使用的時(shí)間戳窗口,默認(rèn)為0。? -T?--temp-dir=DIR?在DIR中創(chuàng)建臨時(shí)文件。? --compare-dest=DIR?同樣比較DIR中的文件來決定是否需要備份。? -P?等同于?--partial。? --progress?顯示備份過程。? -z,?--compress?對(duì)備份的文件在傳輸時(shí)進(jìn)行壓縮處理。 ?--exclude=PATTERN?指定排除不需要傳輸?shù)奈募J健? ?--include=PATTERN?指定不排除而需要傳輸?shù)奈募J健? ?--exclude-from=FILE?排除FILE中指定模式的文件。 ?--include-from=FILE?不排除FILE指定模式匹配的文件。? --version?打印版本信息。? --address?綁定到特定的地址。? --config=FILE?指定其他的配置文件,不使用默認(rèn)的rsyncd.conf文件。? --port=PORT?指定其他的rsync服務(wù)端口。? --blocking-io?對(duì)遠(yuǎn)程shell使用阻塞IO。? -stats?給出某些文件的傳輸狀態(tài)。? --progress?在傳輸時(shí)現(xiàn)實(shí)傳輸過程。 --log-format=formAT?指定日志文件格式。? --password-file=FILE?從FILE中得到密碼。? --bwlimit=KBPS?限制I/O帶寬,KBytes?per?second。? -h,?--help?顯示幫助信息。