1. 程式人生 > >Centos rsync配置

Centos rsync配置

一、伺服器端配置:# yum -y install xinetd

# vi /etc/xinetd.d/rsync 將如下程式碼

service rsync { disable = yes socket_type = stream wait = no user = root server = /usr/bin/rsync server_args = –daemon log_on_failure += USERID }

中的 disable = yes 改成 disable = no

然後啟動 xinetd# /etc/init.d/xinetd start 或 service xinetd restart

注意:如果伺服器上裝有防火牆記得要開啟埠,預設埠是873

# telnet 127.0.0.1 873 Trying 127.0.0.1... telnet: connect to address 127.0.0.1: Connection refused # iptables -A INPUT -s 192.168.0.0/255.255.255.0 -p tcp -m tcp --dport 873 -j ACCEPT # iptables -A INPUT -p tcp -m tcp --dport 873 -j DROP

# vi /etc/rsyncd.conf (這個檔案如果不存在自己建立)

#Global Settings uid = root #以什麼身份執行rsync gid = root use chroot = no #不使用chroot max connections = 20 #最大連線數 secrets file = /etc/rsyncd.secrets #密碼檔案位置,認證檔案設定,設定使用者名稱和密碼 log file = /var/log/rsyncd.log #指定rsync的日誌檔案,而不將日誌傳送給syslog pid file = /var/run/rsyncd.pid #指定rsync的pid檔案 lock file = /var/run/rsync.lock #指定支援max connections引數的鎖檔案,預設值是/var/run/rsyncd.lock comment = hello world #motd file = /etc/rsyncd.motd #歡迎資訊檔名稱和存放位置(此檔案沒有,可以自行新增) [backup] # 這裡是認證的模組名,在client端需要指定 path = /titan24/www/repos # 需要做映象的目錄 auth users = rsync # 授權帳號。認證的使用者名稱,如果沒有這行,則表明是匿名,多個使用者用,分隔 read only = no # yes只讀 值為NO意思為可讀可寫模式,資料恢復用NO hosts allow = 192.168.3.128 #允許訪問的伺服器IP hosts deny = * #黑名單 list = true # 允許列檔案 #ignore errors # 可以忽略一些無關的IO錯誤 #exclude = cache/111/ cache/222/ #忽略的目錄

# vi /etc/rsyncd.secrets (設定訪問(認證)的使用者名稱密碼)

rsync:111111 #使用者名稱:密碼

給檔案正確的許可權# chown root:root /etc/rsyncd.secrets # chmod 600 /etc/rsyncd.secrets  #(必須是600)

二、client 端進行同步 客戶端預設好像已經裝了rsync,沒有的話裝下:# yum -y install rsync

執行非同步同步操作:

/usr/bin/rsync -avz --progress  [email protected]::backup  /www

# crontab -e #(可以定時每三分鐘同步一次檔案)

*/3  * * * * rsync -avz --progress  [email protected]::backup  /www

下面這個命令完整一點:

#vi /etc/rsyncd.pas 加入密碼 rsyncofpass 注意,客戶端的密碼檔案只需要密碼,而不需要使用者名稱!

更改檔案許可權: #chmod 0600 /etc/rsyncd.pas

#rsync -vzrtopgu --progress --delete --password-file=/etc/rsyncd.pas  [email protected]::rsync_module_name1 /www/

這個命令列中-vzrtopg裡的v是verbose, z是壓縮傳輸, r是recursive, topg都是保持檔案原有屬性如屬主、時間的引數。 u是隻同步已經更新的檔案,避免沒有更新的檔案被重複更新一次,不過要注意兩者機器的時鐘的同步。 –progress是指顯示出詳細的進度情況, –delete是指如果伺服器端刪除了這一檔案,那麼客戶端也相應把檔案刪除,保持真正的一致。 後 面的[email protected]::rsync_module_name1中,之後的rsync_module_name1是模組名, 也就是在/etc/rsyncd.conf中自定義的名稱,rsync_user是指定模組中指定的可以同步的使用者名稱。 最後的/www是備份到本地的目錄名。 在這裡面,還可以用-e ssh的引數建立起加密的連線。 可以用–password-file=/password/path/file來指定密碼檔案,這樣就可以在指令碼中使用而無需互動式地輸入驗證密碼了,這裡需要注意的是這份密碼檔案許可權屬性要設得只有屬主可讀。

#/usr/local/rsync/bin/rsync -vzrtopg –progress –delete[email protected]::rsync_module_name1 /tmp/ Password: 或者你也可以制定password檔案 由於需要系統crontab執行,所以這裡採用讀入密碼檔案的方式, 這個時候就成功了。

---------------------------------同步命令說明:---------------------------------

1 顯示目錄內容

命令 —— a) rsync b) rsync -r c) rsync [email protected]:: d) rsync [email protected]:

命令說明 ——— a) 顯示目錄內容(第一層) b) 遞迴顯示目錄內容 c) 顯示遠端主機目錄內容 *注1:埠模式, 基於rsync使用者的身份驗證 *注2:rsync server上的目錄必須具有xx7的許可權.

d) 檢視遠端主機目錄內容 *注1:remote shell模式, 通過ssh連線的基於系統本地使用者的身份驗證 *注2:這裡只使用了一個冒號(:),同時使用者名稱是遠端主機的ssh 使用者,密碼也是ssh使用者對應的密碼。 *注3:使用””,則列出資料夾本身的資訊。若要列出資料夾內容,應使用”/”。

引數說明 ——— -r 對目錄進行遞迴操作

2 本地目錄之間同步

命令 —— a) rsync -av –progress / *** 注意(/) *** b) rsync -av –progress c) rsync -avu –progress –delete / d) rsync -av –progress –temp-dir=/tmp /

命令說明 ——— a) 同步src-dir目錄下所有檔案到dst-dir目錄下 b) 同步src-dir目錄下所有檔案到dst-dir/src-dir目錄下 c) 對src-dir目錄內容向dst-dir目錄下進行差異更新,有增加/更新則新增替換,有減少則對其刪減 d) 比a)多了–temp-dir=/tmp,即指定/tmp為臨時交換區,這樣可以避免因目標目錄空間不夠引起的無法同步檔案的錯誤。

引數說明 ——— -a 相當於 -rlptgoD 的集合 -u 等同於 –update,在目標檔案比原始檔新的情況下不更新 -v 顯示同步的檔案 –progress 顯示檔案同步時的百分比進度、傳輸速率 –delete 刪除目標目錄中多於源目錄的檔案

3 異地主機之間同步 命令 —— a) rsync -avz –progress [email protected]::/ b) rsync -avz –progress [email protected]::/ –password-file=/home/jack/rsync.jack c) rsync -avuz –progress –delete [email protected]::/ –password-file=/home/jack/rsync.jack d) rsync -avz –progress [email protected]::/

命令說明 ——— a) 同步本地目錄的內容到遠端主機192.168.0.1的目錄下,jack是rsync資料庫使用者(參見3. /etc/rsync.secrets) b) 通過自動讀取使用者密碼而實現非互動登入檔案同步 c) 較b)多了-u和–delete d) 同步遠端主機內容到本地目錄

以前在使用rsync備份這篇文章裡說到怎麼使用rsync使用ssh協議,來同步遠端檔案的方法,rsync -zvrtopg -e ssh 但是如果遇到ssh不是22埠的呢?man了半天,其實很簡單 rsync -zvrtopg -e ‘ssh -p 埠’ 很簡單很好用!特別是對於小檔案特別多的時候,rsync獨特演算法的優勢展現得淋漓盡致 !

rsync深入研究

1,預設配置下,rsync的目錄是隻讀的,除非你顯示的註明 read only = no

2,同步軟連結出現的問題---/rsyncd-munged/

      如果rsync伺服器提供的目錄可寫,並且設定use chroot = no,那麼就會出現這樣的問題,在軟連結地址前多了/rsyncd-munged/

      如果rsync伺服器提供的目錄可寫,並且設定use chroot = yes,那麼問題就可以解決。

      原因:預設情況下,rsync的目錄是隻讀的,因此同步的時候,安全機制的干預較少,出現的問題較少。

                如果設定rsync的目錄可寫後,rsync的安全機制就進行干預了,會防止惡意破壞rsync的伺服器目錄,因此預設會在軟連結前面

                加上/rsyncd-munged/,防止越權操作。

3,軟連結同步問題

      a,把軟連結當作軟連結來同步,使用命令-l

      b,把軟連結當作目錄來同步,使用命令-L

      c,不同步軟連結,不使用上述命令

4,rsync同步目錄技巧

     a,同步命令   host::test/test/   /home/test/    直接將host::test/test/下面的檔案同步到/home/test/下,因此兩個目錄是完全一致的。

     b,同步命令   host::test/test/   /home/test     直接將host::test/test/下面的檔案同步到/home/test/下,因此兩個目錄是完全一致的。

     c,同步命令   host::test/test   /home/test      直接將host::test/test/下面的檔案同步到/home/test/test/下,因此兩個目錄是不一致的。

     d,同步命令   host::test/test   /home/test/      直接將host::test/test/下面的檔案同步到/home/test/test/下,因此兩個目錄是不一致的。

     總結,同步目錄host::test/test/是說將該目錄下面的內容不同到指定目錄中;

               同步目錄host::test/test 是說將該目錄同步到指定目錄中;

     至於說後面的指定目錄有沒有"/"真的不重要,都可以;

5,rsync基於ssh方式傳輸檔案

     rsync -av [email protected]:/tmp/test.ios   /tmp/  指定帳號

     rsync -av miotour.com:/tmp/test.ios   /tmp/     使用預設的帳號

6,rsync基於ssh方式傳輸和基於socket方式傳輸速度對比,sockey方式明顯勝出,速度提升38%

     為了防止同步同一個檔案造成誤差,因此同時生成兩個檔案

     dd if=/dev/zero of=/home/test.iso bs=1G count=10

     dd if=/dev/zero of=/home/test1.iso bs=1G count=10

     time /usr/local/bin/rsync -av --progress  miotour.com::miotour/test.iso .      real    1m31.417s

     

    time /usr/local/bin/rsync -av --progress   [email protected]:/home/test1.iso  .   real    2m28.177s

    

 7,限速 單位KB/S

      --bwlimit=40960  限速為40MB/S   

 8,檔案修改後的傳輸方式

       dd if=/dev/zero of=/home/test.iso bs=100M count=20

       第一次傳輸情形如下:

       

       echo "jiaozhenqing">>test.iso   ls命令檢查確認檔案更新

       可以看到,received 199105 bytes;而整個檔案傳輸的話,傳輸了2097408128bytes,傳輸的體積佔據檔案體積的萬分之一

       

9,傳輸壓縮和不壓縮的區別

      傳輸壓縮的話,速度慢,時間長;

      傳輸不壓縮的話,速度快,時間短,節省38%的時間。

     疑問?壓縮和不壓縮傳輸的檔案體積基本相似 檔案體積是2097152026這個沒有爭議

     並且該檔案可以被gzip壓縮到2035286的體積,不存在類似圖片等無法壓縮的情況

      time /usr/local/bin/rsync -avz --progress  壓縮傳輸

      time /usr/local/bin/rsync -av --progress    不壓縮傳輸

      

      

10,新增-W(--whole-file)引數後,不進行增量檢測,如果檔案發生變化,就會全量傳輸,而非變動部分傳輸。

11,指定檢驗演算法使用的塊尺寸,預設是700位元組  -B, --block-size=SIZE

       time /usr/local/bin/rsync -av --progress -B 2000

       預設尺寸的話,傳輸了199111 bytes。設定為2000位元組的話,傳輸了4194455bytes;

       增大塊尺寸,並沒有明顯的收益,反而增加了傳輸時間和傳輸體積,不可取。

       下面是預設尺寸的

       

      time /usr/local/bin/rsync -av --progress -B 2000

       

       time /usr/local/bin/rsync -av --progress -B 400000

       

 12,rsync開啟強制對檔案傳輸進行校驗效能對比

        time /usr/local/bin/rsync -av --progress -c  開啟後,檔案傳輸體積稍微增大一點點,可忽略不計,但傳輸時間明顯延長27%

        time /usr/local/bin/rsync -av --progress 

        time /usr/local/bin/rsync -av --progress -zc 如果說同時開啟了c和z呢,時間增加一倍,傳輸體積居然也增加了,不可理解。

        

        

        

13,待解決問題

          

14,rsync同步單個檔案時候的行為

     

    我同步一個檔案到web目錄下,並且顯示web目錄已經達到了1.2GB了

    

   執行ls命令啥也看不到,執行ls -al則看到了一個隱藏檔案,原來rsync同步單個檔案的時候,在沒有完全同步之前,是先搞成隱藏檔案來處理的

15,Too many links (31)

      今天rsync同步持續失敗,手工執行命令,發現一直報這個錯誤Too many links (31),想了下,應該是有太多的軟連結了吧,導致同步失敗,上去檢查,發現沒有問題,因為rsync報錯的目錄,只有三個檔案,並且一定不包含連結。

       網上查了好久,沒有啥眉目,沒辦法了,至少自己動手了,想了半天,感覺可能是檔案數太多搞成的,然後我自己手工通過find檢查了下,發現主機有150萬檔案,備機有800萬檔案,掛不得主機同步不過去了,刪除備機的檔案後,同步恢復。

       究其原因,應該是對端檔案數太多了,導致rsync無法進行同步了。當時為了排除問題,直接用scp 拷貝一個只有三個檔案的目錄,報錯同樣的內容,因此問題定位是檔案數的問題,而非rsync的問題。

 16,網站映象命令推薦

       rsync -av --delete   miotour.com::miotour   /home/miotour/

       其實--delete還有對刪除檔案進行重新命名操作的,理論來講,該功能可以防止rsync源資料出現問題導致的映象機一併出現異常,但是使用久了就會發現,檔案備份後,檔案數在不斷增長,最後還是會死。

17,rsync同步目錄問題

在rsyncd.conf檔案中指定目錄

[miotour]

path = /home/miotour

[miotour1]

path = /home/miotour1

在/home/miotour下面建立三個目錄,a1,a2,a

在/home/test下面進行同步a目錄操作

1,rsync --port=12222  -vlzrtopg --delete miotour.com::mitour     /home/test

     該命令會將a  a1  a2三個目錄同步到/home/test下,並且先將/home/test下面的內容刪除再同步

2,rsync --port=12222  -vlzrtopg --delete miotour.com::mitour/a     /home/test

     該命令會先將/home/test目錄下面的內容刪除後,在將a目錄同步到/home/test,因此僅有a被同步了

所以,同步是將指定目錄下面的檔案全部同步到指定目錄下面

3,rsync --port=12222  -vlzrtopg --delete miotour.com::mitour1    /home/test

4,rsync --port=12222  -vlzrtopg --delete miotour.com::mitour1/a     /home/test

下面兩個命令和上面的執行效果完全相同,並不會因為在rsyncd.conf的路徑結尾多加了/而導致結果有任何不同。

 :下面所有例子中 – - 之間實際上是沒有空格的,使用時請刪除空格。

Rsync是一個遠端資料同步工具,可通過LAN 或網際網路快速同步多臺主機間的檔案。Rsync 本來是用以取代 rcp的一個工具,它當前由 rsync.samba.org 維護。Rsync 使用所謂的”Rsync演演算法”來使本地和遠端兩個主機之間的檔案達到同步,這個演算法只傳送兩個檔案的不同部分,而不是每次都整份傳送,因此速度相當快。

Rsync 的特色:

  1. 快速:第一次同步時 rsync 會複製全部內容,但在下一次只傳輸修改過的檔案。
  2. 安全:rsync 允許通過 ssh 協議來加密傳輸資料。
  3. 更少的頻寬:rsync 在傳輸資料的過程中可以實行壓縮及解壓縮操作,因此可以使用更少的頻寬。
  4. 特權:安裝和執行 rsync 無需特別的許可權

基本語法:

rsync options source destination


源和目標都可以是本地或遠端,在進行遠端傳輸的時候,需要指定登入名、遠端伺服器及檔案位置

  rsync 引數的具體解釋如下:

Html程式碼 

 收藏程式碼

  1. -v, --verbose 詳細模式輸出  
  2. -q, --quiet 精簡輸出模式  
  3. -c, --checksum 開啟校驗開關,強制對檔案傳輸進行校驗  
  4. -a, --archive 歸檔模式,表示以遞迴方式傳輸檔案,並保持所有檔案屬性,等於-rlptgoD  
  5. -r, --recursive 對子目錄以遞迴模式處理  
  6. -R, --relative 使用相對路徑資訊  
  7. -b, --backup 建立備份,也就是對於目的已經存在有同樣的檔名時,將老的檔案重新命名為~filename。可以使用--suffix選項來指定不同的備份檔案字首。  
  8. --backup-dir 將備份檔案(如~filename)存放在在目錄下。  
  9. -suffix=SUFFIX 定義備份檔案字首  
  10. -u, --update 僅僅進行更新,也就是跳過所有已經存在於DST,並且檔案時間晚於要備份的檔案。(不覆蓋更新的檔案)  
  11. -l, --links 保留軟鏈結  
  12. -L, --copy-links 想對待常規檔案一樣處理軟鏈結  
  13. --copy-unsafe-links 僅僅拷貝指向SRC路徑目錄樹以外的鏈結  
  14. --safe-links 忽略指向SRC路徑目錄樹以外的鏈結  
  15. -H, --hard-links 保留硬鏈結  
  16. -p, --perms 保持檔案許可權  
  17. -o, --owner 保持檔案屬主資訊  
  18. -g, --group 保持檔案屬組資訊  
  19. -D, --devices 保持裝置檔案資訊  
  20. -t, --times 保持檔案時間資訊  
  21. -S, --sparse 對稀疏檔案進行特殊處理以節省DST的空間  
  22. -n, --dry-run現實哪些檔案將被傳輸  
  23. -W, --whole-file 拷貝檔案,不進行增量檢測  
  24. -x, --one-file-system 不要跨越檔案系統邊界  
  25. -B, --block-size=SIZE 檢驗演算法使用的塊尺寸,預設是700位元組  
  26. -e, --rsh=COMMAND 指定使用rsh、ssh方式進行資料同步  
  27. --rsync-path=PATH 指定遠端伺服器上的rsync命令所在路徑資訊  
  28. -C, --cvs-exclude 使用和CVS一樣的方法自動忽略檔案,用來排除那些不希望傳輸的檔案  
  29. --existing 僅僅更新那些已經存在於DST的檔案,而不備份那些新建立的檔案  
  30. --delete 刪除那些DST中SRC沒有的檔案  
  31. --delete-excluded 同樣刪除接收端那些被該選項指定排除的檔案  
  32. --delete-after 傳輸結束以後再刪除  
  33. --ignore-errors 及時出現IO錯誤也進行刪除  
  34. --max-delete=NUM 最多刪除NUM個檔案  
  35. --partial 保留那些因故沒有完全傳輸的檔案,以是加快隨後的再次傳輸  
  36. --force 強制刪除目錄,即使不為空  
  37. --numeric-ids 不將數字的使用者和組ID匹配為使用者名稱和組名  
  38. --timeout=TIME IP超時時間,單位為秒  
  39. -I, --ignore-times 不跳過那些有同樣的時間和長度的檔案  
  40. --size-only 當決定是否要備份檔案時,僅僅察看檔案大小而不考慮檔案時間  
  41. --modify-window=NUM 決定檔案是否時間相同時使用的時間戳視窗,預設為0  
  42. -T --temp-dir=DIR 在DIR中建立臨時檔案  
  43. --compare-dest=DIR 同樣比較DIR中的檔案來決定是否需要備份  
  44. -P 等同於 --partial  
  45. --progress 顯示備份過程  
  46. -z, --compress 對備份的檔案在傳輸時進行壓縮處理  
  47. --exclude=PATTERN 指定排除不需要傳輸的檔案模式  
  48. --include=PATTERN 指定不排除而需要傳輸的檔案模式  
  49. --exclude-from=FILE 排除FILE中指定模式的檔案  
  50. --include-from=FILE 不排除FILE指定模式匹配的檔案  
  51. --version 列印版本資訊  
  52. --address 繫結到特定的地址  
  53. --config=FILE 指定其他的配置檔案,不使用預設的rsyncd.conf檔案  
  54. --port=PORT 指定其他的rsync服務埠  
  55. --blocking-io 對遠端shell使用阻塞IO  
  56. -stats 給出某些檔案的傳輸狀態  
  57. --progress 在傳輸時現實傳輸過程  
  58. --log-format=formAT 指定日誌檔案格式  
  59. --password-file=FILE 從FILE中得到密碼  
  60. --bwlimit=KBPS 限制I/O頻寬,KBytes per second  
  61. -h, --help 顯示幫助資訊  

樣例:

1 在本地機器上對兩個目錄進行同步

$ rsync -zvr /var/opt/installation/inventory/ /root/temp
building file list … done
sva.xml
svB.xml
.
sent 26385 bytes received 1098 bytes 54966.00 bytes/sec
total size is 44867 speedup is 1.63
$

引數:

  1. -z 開啟壓縮
  2. -v 詳情輸出
  3. -r 表示遞迴

2 利用 rsync -a 讓同步時保留時間標記

rsync 選項 -a 稱為歸檔模式,執行以下操作

  1. 遞迴模式
  2. 保留符號連結
  3. 保留許可權
  4. 保留時間標記
  5. 保留使用者名稱及組名
$ rsync -azv /var/opt/installation/inventory/ /root/temp/
building file list … done
./
sva.xml
svB.xml
.
sent 26499 bytes received 1104 bytes 55206.00 bytes/sec
total size is 44867 speedup is 1.63
$

3 僅同步一個檔案

$ rsync -v /var/lib/rpm/Pubkeys /root/temp/
Pubkeys

sent 42 bytes received 12380 bytes 3549.14 bytes/sec
total size is 12288 speedup is 0.99

4 從本地同步檔案到遠端伺服器

$ rsync -avz /root/temp/ [email protected]:/home/thegeekstuff/temp/

Password:
building file list … done
./
rpm/
rpm/Basenames
rpm/Conflictname

sent 15810261 bytes received 412 bytes 2432411.23 bytes/sec
total size is 45305958 speedup is 2.87

就像你所看到的,需要在遠端目錄前加上 ssh 登入方式,格式為 [email protected]:path

5 同步遠端檔案到本地

和上面差不多,做個相反的操作

$ rsync -avz [email protected]:/var/lib/rpm
 /root/temp
Password:
receiving file list … done
rpm/
rpm/Basenames
.
sent 406 bytes received 15810230 bytes 2432405.54 bytes/sec
total size is 45305958 speedup is 2.87

6 同步時指定遠端 shell

用 -e 引數可以指定遠端 ssh ,比如用 rsync -e ssh 來指定為 ssh

$ rsync -avz -e ssh [email protected]:/var/lib/rpm
 /root/temp
Password:
receiving file list … done
rpm/
rpm/Basenames

sent 406 bytes received 15810230 bytes 2432405.54 bytes/sec
total size is 45305958 speedup is 2.87

7 不要覆蓋被修改過的目的檔案

使用 rsync -u 選項可以排除被修改過的目的檔案

$ ls -l /root/temp/Basenames
total 39088
-rwxr-xr-x 1 root root 4096 Sep 2 11:35 Basenames

$ rsync -avzu [email protected]:/var/lib/rpm
 /root/temp
Password:
receiving file list … done
rpm/

sent 122 bytes received 505 bytes 114.00 bytes/sec
total size is 45305958 speedup is 72258.31

$ ls -lrt
total 39088
-rwxr-xr-x 1 root root 4096 Sep 2 11:35 Basenames

8 僅僅同步目錄權(不同步檔案)

使用 -d 引數

$ rsync -v -d [email protected]:/var/lib/
 .
Password:
receiving file list … done
logrotate.status
CAM/
YaST2/
acpi/

sent 240 bytes received 1830 bytes 318.46 bytes/sec
total size is 956 speedup is 0.46

9 檢視每個檔案的傳輸程序

使用 – -progress 引數

$ rsync -avz – -progress [email protected]:/var/lib/rpm/
 /root/temp/
Password:
receiving file list …
19 files to consider
./
Basenames
5357568 100% 14.98MB/s 0:00:00 (xfer#1, to-check=17/19)
Conflictname
12288 100% 35.09kB/s 0:00:00 (xfer#2, to-check=16/19)
.
.
.
sent 406 bytes received 15810211 bytes 2108082.27 bytes/sec
total size is 45305958 speedup is 2.87

10 刪除在目的資料夾中建立的檔案

用 – -delete 引數

# Source and target are in sync. Now creating new file at the target.
$ > new-file.txt

$ rsync -avz – -delete [email protected]:/var/lib/rpm/
 .
Password:
receiving file list … done
deleting new-file.txt
./

sent 26 bytes received 390 bytes 48.94 bytes/sec
total size is 45305958 speedup is 108908.55

11 不要在目的資料夾中建立新檔案

有時能只想同步目的地中存在的檔案,而排除原始檔中新建的檔案,可以使用 – -exiting 引數

$ rsync -avz –existing [email protected]:/var/lib/rpm/
 .
[email protected]′s
 password:
receiving file list … done
./

sent 26 bytes received 419 bytes 46.84 bytes/sec
total size is 88551424 speedup is 198991.96

12 檢視源和目的檔案之間的改變情況

用 -i 引數

$ rsync -avzi [email protected]:/var/lib/rpm/
 /root/temp/
Password:
receiving file list … done
>f.st…. Basenames
.f….og. Dirnames

sent 48 bytes received 2182544 bytes 291012.27 bytes/sec
total size is 45305958 speedup is 20.76

輸出結果中在每個檔案最前面會多顯示 9 個字母,分別表示為

> 已經傳輸  f 表示這是一個檔案  d 表示這是一個目錄  s 表示尺寸被更改  t 時間標記有變化  o 使用者被更改  g 使用者組被更改

13 在傳輸時啟用包含和排除模式

$ rsync -avz – -include ‘P*’ – -exclude ‘*’ [email protected]:/var/lib/rpm/
 /root/temp/
Password:
receiving file list … done
./
Packages
Providename
Provideversion
Pubkeys

sent 129 bytes received 10286798 bytes 2285983.78 bytes/sec
total size is 32768000 speedup is 3.19

14 不要傳輸大檔案

使用 – - max-size 引數

$ rsync -avz – -max-size=’100K’ [email protected]:/var/lib/rpm/
 /root/temp/
Password:
receiving file list … done
./
Conflictname
Group
Installtid
Name
Sha1header
Sigmd5
Triggername

sent 252 bytes received 123081 bytes 18974.31 bytes/sec
total size is 45305958 speedup is 367.35

15 傳輸所有檔案

不管有沒有改變,再次把所有檔案都傳輸一遍,用 -W 引數

# rsync -avzW [email protected]:/var/lib/rpm/
 /root/temp
Password:
receiving file list … done
./
Basenames
Conflictname
Dirnames
Filemd5s
Group
Installtid
Name

sent 406 bytes received 15810211 bytes 2874657.64 bytes/sec
total size is 45305958 speedup is 2.87