rsync配置命令詳解 1、什麼是Rsync-Rsync配置參數詳解Rsync(remote synchronize)是一個遠端資料同步工具,可通過LAN/WAN快速同步多台主機間的檔案。Rsync使用所謂的“Rsync演算法”來使本地和遠 程兩個主機之間的檔案達到同步,這個演算法只傳送兩個檔案的不同部分,而不是每次都整份傳送,因此速度相當快。 Rsync本來是用於替代rcp的一個工具,目前由rsync.samba.org維護,所以rsync.conf檔案的格式類似於samba 的主設定檔。Rsync可以通過rsh或ssh使用,也能以daemon模式去運行,在以daemon方式運行時Rsync server會開啟一個873連接埠,等待用戶端去串連。串連時,Rsync server會檢查口令是否相符,若通過口令查核,則可以開始進行檔案傳輸。第一次連通完成時,會把整份檔案傳輸一次,以後則就只需進行增量備份。 Rsync支援大多數的類Unix系統,無論是Linux、Solaris還是BSD上都經過了良好的測試。此外,它在windows平台下也 有相應的版本,如cwRsync和Sync2NAS等工具。 Rsync的基本特點如下: 1.可以鏡像儲存整個分類樹和檔案系統; 2.可以很容易做到保持原來檔案的許可權、時間、軟永久連結等; 3.無須特殊許可權即可安裝; 4.最佳化的流程,檔案傳輸效率高; 5.可以使用rsh、ssh等方式來傳輸檔案,當然也可以通過直接的socket串連; 6.支援匿名傳輸。 2、Rsync同步演算法Rsync只所以同步檔案的速度相當快,是因為“Rsync同步演算法”能在很短的時間內計算出需要備份的資料,關於Rsync的同步演算法描述如下: 假定在1號和2號兩台電腦之間同步相似的檔案A與B,其中1號對檔案A擁有訪問權,2號對檔案B擁有訪問權。並且假定主機1號與2號之間的網路頻寬很 小。那麼rsync演算法將通過下面的五個步驟來完成: 1、2號將檔案B分割成一組不重疊的固定大小為S位元組的資料區塊,最後一塊可能會比S 小。 2、2號對每一個分割好的資料區塊執行兩種校正:一種是32位的滾動弱校正,另一種是128位的MD4強校正。 3、2號將這些校正結果發給1號。 4、1號通過搜尋檔案A的所有大小為S的資料區塊(位移量可以任選,不一定非要是S的倍數),來尋找與檔案B的某一塊有著相同的弱校正碼和強校正碼的 資料區塊。這項工作可以藉助滾動校正的特性很快完成。 5、1號發給2號一串指令來組建檔案A在2號上的備份。這裡的每一條指令要麼是對檔案B經擁有某一個資料區塊而不須重傳的證明,要麼是一個資料區塊,這 個資料區塊肯定是沒有與檔案B的任何一個資料區塊匹配上的。 3、Rsync參數說明 3.1 rsyncd.conf設定檔 -、全域參數在檔案中[module]之前的所有參數都是全域參數,當然也可以在全域參數部分定義模組參數,這時候該參數的值就是所有模組的預設值。 port指定背景程式使用的連接埠號碼,預設為873。 motd file“motd file”參數用來指定一個訊息檔案,當客戶串連伺服器時該檔案的內容顯示給客戶,預設是沒有motd檔案的。 log file“log file”指定rsync的記錄檔,而不將日誌發送給syslog。比如可指定為“/var/log/rsyncd.log”。 pid file指定rsync的pid檔案,通常指定為“/var/run/rsyncd.pid”。 syslog facility指定rsync發送日誌訊息給syslog時的訊息層級,常見的訊息層級是:uth, authpriv, cron, daemon, ftp, kern, lpr, mail, news, security, sys-log, user, uucp, local0, local1, local2, local3,local4, local5, local6和local7。預設值是daemon。 二、模組參數主要是定義伺服器哪個目錄要被同步。其格式必須為“[module]”形式,這個名字就是在rsync 用戶端看到的名字,其實有點象Samba伺服器提供的共用名稱。而伺服器真正同步的資料是通過 path 來指定的。我們可以根據自己的需要,來指定多個模組,模組中可以定義以下參數: comment給模組指定一個描述,該描述連同模組名在客戶串連得到模組列表時顯示給客戶。預設沒有描述定義。 path指定該模組的供備份的分類樹路徑,該參數是必須指定的。 use chroot如果”use chroot”指定為true,那麼rsync在傳輸檔案以前首先chroot到path參數所指定的目錄下。這樣做的原因是實現額外的安全防護,但是缺 點是需要以roots許可權,並且不能備份指向外部的符號串連所指向的目錄檔案。預設情況下chroot值為true。 uid該選項指定當該模組傳輸檔案時守護進程應該具有的uid,配合gid選項使用可以確定哪些可以訪問怎麼樣的檔案許可權,預設值是”nobody”。 gid該選項指定當該模組傳輸檔案時守護進程應該具有的gid。預設值為”nobody”。 max connections指定該模組的最大並發串連數量以保護伺服器,超過限制的串連請求將被告知隨後再試。預設值是0,也就是沒有限制。 list該選項設定當客戶請求可以使用的模組列表時,該模組是否應該被列出。如果設定該選項為false,可以建立隱藏的模組。預設值是true。 read only該選項設定是否允許客戶上傳檔案。如果為true那麼任何上傳請求都會失敗,如果為false並且伺服器目錄讀寫權限允許那麼上傳是允許的。預設值 為true。 exclude用來指定多個由空格隔開的多個檔案或目錄(相對路徑),並將其添加到exclude列表中。這等同於在用戶端命令中使用–exclude來指定模 式,一個模組只能指定一個exclude選項。但是需要注意的一點是該選項有一定的安全性問題,客戶很有可能繞過exclude列表,如果希望確保特定的 檔案不能被訪問,那就最好結合uid/gid選項一起使用。 exclude from指定一個包含exclude模式的定義的檔案名稱,伺服器從該檔案中讀取exclude列表定義。 include用來指定不排除符合要求的檔案或目錄。這等同於在用戶端命令中使用–include來指定模式,結合include和exclude可以定義複雜的 exclude/include規則 。 include from指定一個包含include模式的定義的檔案名稱,伺服器從該檔案中讀取include列表定義。 auth users該選項指定由空格或逗號分隔的使用者名稱列表,只有這些使用者才允許串連該模組。這裡的使用者和系統使用者沒有任何關係。如果”auth users”被設定,那麼用戶端發出對該模組的串連請求以後會被rsync請求challenged進行驗證身份這裡使用的 challenge/response認證協議。使用者的名和密碼以明文方式存放在”secrets file”選項指定的檔案中。預設情況下無需密碼就可以串連模組(也就是匿名方式)。 secrets file該選項指定一個包含定義使用者名稱:密碼對的檔案。只有在”auth users”被定義時,該檔案才有作用。檔案每行包含一個username:passwd對。一般來說密碼最好不要超過8個字元。沒有預設的 secures file名,需要限式指定一個(例如:/etc/rsyncd.passwd)。注意:該檔案的許可權一定要是600,否則用戶端將不能串連伺服器。 strict modes該選項指定是否監測密碼檔案的許可權,如果該選項值為true那麼密碼檔案只能被rsync伺服器運行身份的使用者訪問,其他任何使用者不可以訪問該文 件。預設值為true。 hosts allow該選項指定哪些IP的客戶允許串連該模組。客戶模式定義可以是以下形式: 單個IP地址,例如:192.167.0.1 整個網段,例如:192.168.0.0/24,也可以是192.168.0.0/255.255.255.0 多個IP或網段需要用空格隔開,“*”則表示所有,預設是允許所有主機串連。 hosts deny指定不允許串連rsync伺服器的機器,可以使用hosts allow的定義方式來進行定義。預設是沒有hosts deny定義。 ignore errors指定rsyncd在判斷是否運行傳輸時的刪除操作時忽略server上的IO錯誤,一般來說rsync在出現IO錯誤時將將跳過–delete操 作,以防止因為暫時的資源不足或其它IO錯誤導致的嚴重問題。 ignore nonreadable指定rysnc伺服器完全忽略那些使用者沒有存取權限的檔案。這對於在需要備份的目錄中有些檔案是不應該被備份者得到的情況是有意義的。 lock file指定支援max connections參數的鎖檔案,預設值是/var/run/rsyncd.lock。 transfer logging使rsync伺服器使用ftp格式的檔案來記錄下載和上傳操作在自己單獨的日誌中。 log format通過該選項使用者在使用transfer logging可以自己定製記錄檔的欄位。其格式是一個包含格式定義符的字串,可以使用的格式定義符如下所示: %h 遠程主機名稱%a 遠程IP地址%l 檔案長度字元數%p 該次rsync會話的進程id%o 操作類型:"send"或"recv"%f 檔案名稱%P 模組路徑%m 模組名%t 目前時間%u 認證的使用者名稱(匿名時是null)%b 實際傳輸的位元組數%c 當傳送檔案時,該欄位記錄該檔案的校正碼預設log格式為:”%o %h [%a] %m (%u) %f %l”,一般來說,在每行的頭上會添加”%t [%p] “。在原始碼中同時發布有一個叫rsyncstats的perl指令碼程式來統計這種格式的記錄檔。 timeout通過該選項可以覆蓋客戶指定的IP逾時時間。通過該選項可以確保rsync伺服器不會永遠等待一個崩潰的用戶端。逾時單位為秒鐘,0表示沒有逾時定 義,這也是預設值。對於匿名rsync伺服器來說,一個理想的數字是600。 refuse options通過該選項可以定義一些不允許客戶對該模組使用的命令參數列表。這裡必須使用命令全名,而不能是簡稱。但發生拒絕某個命令的情況時伺服器將報告錯誤 資訊然後退出。如果要防止使用壓縮,應該是:”dont compress = *”。 dont compress用來指定那些不進行壓縮處理再傳輸的檔案,預設值是*.gz *.tgz *.zip *.z *.rpm *.deb *.iso *.bz2 *.tbz 3.2 Rsync命令在對rsync伺服器配置結束以後,下一步就需要在用戶端發出rsync命令來實現將伺服器端的檔案備份到用戶端來。rsync是一個功能非常強大 的工具,其命令也有很多功能特色選項,我們下面就對它的選項一一進行分析說明。 Rsync的命令格式可以為以下六種: 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] 對應於以上六種命令格式,rsync有六種不同的工作模式: 1)拷貝本地檔案。當SRC和DES路徑資訊都不包含有單個冒號”:“分隔字元時就啟動這種工作模式。如:rsync -a /data /backup 2)使用一個遠程shell程式(如rsh、ssh)來實現將本地機器的內容拷貝到遠程機器。當DST路徑地址包含單個冒號”:“分隔字元時啟動 該模式。如:rsync -avz *.c foo:src 3)使用一個遠程shell程式(如rsh、ssh)來實現將遠程機器的內容拷貝到本地機器。當SRC地址路徑包含單個冒號”:“分隔字元時啟動 該模式。如:rsync -avz foo:src/bar /data 4)從遠程rsync伺服器中拷貝檔案到本地機。當SRC路徑資訊包含”::“分隔字元時啟動該模式。如:rsync -av root@172.16.78.192::www /databack 5)從本地機器拷貝檔案到遠程rsync伺服器中。當DST路徑資訊包含”::“分隔字元時啟動該模式。如:rsync -av /databack root@172.16.78.192::www 6)列遠程機的檔案清單。這類似於rsync傳輸,不過只要在命令中省略掉本地機資訊即可。如:rsync -v rsync://172.16.78.192/www 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 指定使用rsh、ssh方式進行資料同步--rsync-path=PATH 指定遠程伺服器上的rsync命令所在路徑資訊-C, --cvs-exclude 使用和CVS一樣的方法自動忽略檔案,用來排除那些不希望傳輸的檔案--existing 僅僅更新那些已經存在於DST的檔案,而不備份那些新建立的檔案--delete 刪除那些DST中SRC沒有的檔案--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 顯示協助資訊4、Rsync使用執行個體 4.1、SSH方式1、首先在服務端啟動ssh服務: # service sshd start啟動 sshd: [確定]2、使用rsync進行同步 接下來就可以在用戶端使用rsync命令來備份服務端上的資料了,SSH方式是通過系統使用者來進行備份的,如下: # rsync -vzrtopg --progress -e ssh --delete work@172.16.78.192:/www/* /databack/experiment/rsyncwork@172.16.78.192's password:receiving file list ...5 files to considertest/a 0 100% 0.00kB/s 527:35:41 (1, 20.0% of 5)b 67 100% 65.43kB/s 0:00:00 (2, 40.0% of 5)c 0 100% 0.00kB/s 527:35:41 (3, 60.0% of 5)dd 100663296 100% 42.22MB/s 0:00:02 (4, 80.0% of 5) sent 96 bytes received 98190 bytes 11563.06 bytes/sectotal size is 100663363 speedup is 1024.19上面的資訊描述了整個的備份過程,以及總共備份資料的大小。 4.2 、後台服務方式1、啟動rsync服務 編輯/etc/xinetd.d/rsync檔案,將其中的disable=yes改為disable=no,並重啟xinetd服務,如下: # vi /etc/xinetd.d/rsync#default: off# description: The rsync server is a good addition to an ftp server, as it \# allows crc checksumming etc.service rsync{ disable = no socket_type = stream wait = no user = root server = /usr/bin/rsync server_args = --daemon log_on_failure += USERID} # /etc/init.d/xinetd restart停止 xinetd: [確定]啟動 xinetd: [確定]2、建立設定檔 預設安裝好rsync程式後,並不會自動建立rsync的主設定檔,需要手工來建立,其主設定檔為“/etc/rsyncd.conf”,建立該檔案 並插入如下內容: # vi /etc/rsyncd.confuid=rootgid=rootmax connections=4log file=/var/log/rsyncd.logpid file=/var/run/rsyncd.pidlock file=/var/run/rsyncd.locksecrets file=/etc/rsyncd.passwdhosts deny=172.16.78.0/22 [www]comment= backup webpath=/wwwread only = noexclude=testauth users=work3、建立密碼檔案 採用這種方式不能使用系統使用者對用戶端進行認證,所以需要建立一個密碼檔案,其格式為“username:password”,使用者名稱可以和密碼可以隨便 定義,最好不要和系統帳戶一致,同時要把建立的密碼檔案使用權限設定為600,這在前面的模組參數做了詳細介紹。 # echo “work:abc123” > /etc/rsyncd.passwd # chmod 600 /etc/rsyncd.passwd 4、備份 完成以上工作,現在就可以對資料進行備份了,如下: # rsync -avz --progress --delete work@172.16.78.192::www /databack/experiment/rsyncPassword:receiving file list ...6 files to consider./ files...a 0 100% 0.00kB/s 528:20:41 (1, 50.0% of 6)b 67 100% 65.43kB/s 0:00:00 (2, 66.7% of 6)c 0 100% 0.00kB/s 528:20:41 (3, 83.3% of 6)dd 100663296 100% 37.49MB/s 0:00:02 (4, 100.0% of 6) sent 172 bytes received 98276 bytes 17899.64 bytes/sectotal size is 150995011 speedup is 1533.755、恢複 當伺服器的資料出現問題時,那麼這時就需要通過用戶端的資料對服務端進行恢複,但前提是服務端允許用戶端有寫入許可權,否則也不能在用戶端直接對服務端進行 恢複,使用rsync對資料進行恢複的方法如下: # rsync -avz --progress /databack/experiment/rsync/ work@172.16.78.192::wwwPassword:building file list ...6 files to consider./ab 67 100% 0.00kB/s 0:00:00 (2, 66.7% of 6)c sent 258 bytes received 76 bytes 95.43 bytes/sectotal size is 150995011 speedup is 452080.875、樣本指令碼這裡這些指令碼都是rsync網站上的例子: 1、每隔七天將資料往中心伺服器做增量備份 #!/bin/sh # This script does personal backups to a rsync backup server. You will end up# with a 7 day rotating incremental backup. The incrementals will go# into subdirectories named after the day of the week, and the current# full backup goes into a directory called "current"# tridge@linuxcare.com # directory to backupBDIR=/home/$USER # excludes file - this contains a wildcard pattern per line of files to excludeEXCLUDES=$HOME/cron/excludes # the name of the backup machineBSERVER=owl # your password on the backup serverexport RSYNC_PASSWORD=XXXXXX ######################################################################## BACKUPDIR=`date +%A`OPTS="--force --ignore-errors --delete-excluded --exclude-from=$EXCLUDES--delete --backup --backup-dir=/$BACKUPDIR -a" export PATH=$PATH:/bin:/usr/bin:/usr/local/bin # the following line clears the last weeks incremental directory[ -d $HOME/emptydir ] || mkdir $HOME/emptydirrsync --delete -a $HOME/emptydir/ $BSERVER::$USER/$BACKUPDIR/rmdir $HOME/emptydir # now the actual transferrsync $OPTS $BDIR $BSERVER::$USER/current2、備份至一個閒置硬碟 #!/bin/sh export PATH=/usr/local/bin:/usr/bin:/bin LIST="rootfs usr data data2" for d in $LIST; domount /backup/$drsync -ax --exclude fstab --delete /$d/ /backup/$d/umount /backup/$ddone DAY=`date "+%A"` rsync -a --delete /usr/local/apache /data2/backups/$DAYrsync -a --delete /data/solid /data2/backups/$DAY3、對vger.rutgers.edu的cvs樹進行鏡像 #!/bin/bash cd /var/www/cvs/vger/PATH=/usr/local/bin:/usr/freeware/bin:/usr/bin:/bin RUN=`lps x | grep rsync | grep -v grep | wc -l`if [ "$RUN" -gt 0 ]; thenecho already runningexit 1fi rsync -az vger.rutgers.edu::cvs/CVSROOT/ChangeLog $HOME/ChangeLog sum1=`sum $HOME/ChangeLog`sum2=`sum /var/www/cvs/vger/CVSROOT/ChangeLog` if [ "$sum1" = "$sum2" ]; thenecho nothing to doexit 0fi rsync -az --delete --force vger.rutgers.edu::cvs/ /var/www/cvs/vger/exit 06、FAQQ:如何通過ssh進行rsync,而且無須輸入密碼? A:可以通過以下幾個步驟 1. 通過ssh-keygen在server A上建立SSH keys,不要指定密碼,你會在~/.ssh下看到identity和identity.pub檔案 2. 在server B上的home目錄建立子目錄.ssh 3. 將A的identity.pub拷貝到server B上 4. 將identity.pub加到~[user b]/.ssh/authorized_keys 5. 於是server A上的A使用者,可通過下面命令以使用者B ssh到server B上了 e.g. ssh -l userB serverB 這樣就使server A上的使用者A就可以ssh以使用者B的身份無需密碼登陸到server B上了。 Q:如何通過在不危害安全的情況下通過防火牆使用rsync? A:解答如下: 這通常有兩種情況,一種是伺服器在防火牆內,一種是伺服器在防火牆外。無論哪種情況,通常還是使用ssh,這時最好建立一個備份使用者,並且配置 sshd僅允許這個使用者通過RSA認證方式進入。 如果伺服器在防火牆內,則最好限定用戶端的IP地址,拒絕其它所有串連。如果客戶機在防火牆內,則可以簡單允許防火牆開啟TCP連接埠22的ssh外發串連 就ok了。 Q:我能將更改過或者刪除的檔案也備份上來嗎? A:當然可以: 你可以使用如:rsync -other -options -backupdir = ./backup-2000-2-13 …這樣的命令來實現。 這樣如果源檔案:/path/to/some/file.c改變了,那麼舊的檔案就會被移到./backup-2000-2-13/path/to /some/file.c, 這裡這個目錄需要自己手工建立起來 Q:我需要在防火牆上開放哪些連接埠以適應rsync? A:視情況而定 rsync可以直接通過873連接埠的tcp串連傳檔案,也可以通過22連接埠的ssh來進行檔案傳遞,但你也可以通過下列命令改變它的連接埠: rsync –port 8730 otherhost:: 或者 rsync -e ‘ssh -p 2002’ otherhost: Q:我如何通過rsync只複製目錄結構,忽略掉檔案呢? A:rsync -av –include ‘*/' –exclude ‘*’ source-dir dest-dir Q:為什麼我總會出現”Read-only file system”的錯誤呢? A:看看是否忘了設”read only = no”了 Q:為什麼我會出現’@ERROR : invalid gid’的錯誤呢? A:rsync使用時預設是用uid=nobody;gid=nobody來啟動並執行,如果你的系統不存在nobody組的話,就會出現這樣的錯誤,可以試 試gid = nogroup或者其它 Q:綁定連接埠873失敗是怎麼回事? A:如果你不是以root許可權運行這一守護進程的話,因為1024連接埠以下是特權連接埠,會出現這樣的錯誤。你可以用–port參數來改變。 Q:為什麼我認證失敗? A:從你的命令列看來: 你用的是: > bash$ rsync -a 144.16.251.213::test test> Password:> @ERROR: auth failed on module test>> I dont understand this. Can somebody explain as to how to acomplish this.> All suggestions are welcome.應該是沒有以你的使用者名稱登陸導致的問題,試試rsync -a max@144.16.251.213::test test