安裝: yum install xinetd    rsync 
   rsync的試用方法 
一、設置Rsync Server端 
Rsync server需要設定四個方面: 
1.規劃建立備份目錄區 
2.設定: /etc/xinetd.d/rsync 
3.設定: /etc/rsyncd.conf 
4.設定: 密碼文件。 
說明如下: 
1.規劃建立備份目錄區: 
建議你在rsync server上開一個較大的磁盤分割區,并在其下建立好備份用的目錄。比如:/home/asialinux。 
2.設定: /etc/xinetd.d/rsync: 
即#vi /etc/xinetd.d/rsync 
#default: off 
#description:The rsync server is a good addition to am 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 
把其中的disable = yes 改為 disable = no之后退出保存就可以了,這還沒有完成,還需啟動rsync的服務。 
#service xinetd restart 
或者 
#ntsysv 
選中 
rsync確定即可。 
這樣就開通了873通道(port),一旦有rsync client連接,xinetd就會把它轉介給rsyncd跑port873。 
3.設定: /etc/rsyncd.conf 
如果在/etc下沒有這個文件,請不要迷惑,自己創建一個不就得了,假設要備份的機器名為asialinux(IP:192.168.0.1), 
即Samba文件服務器: 
#vi /etc/rsyncd.conf 
uid = nobody 
gid = nobody 
use chroot = no 
max connections = 4 
pid file = /var/run/rsyncd.pid 
lock file = /var/run/rsync.lock 
log file = /var/log/rsyncd.log 
secrets file = /etc/rsync.pass 
[backup] 
path = /home/server/asialinux 
auth users = feixue 
uid = root 
gid = root 
secrets file = /home/rsyncd.secrets 
read only = no 
退出vi編輯模式并保存。 
說明: 
[backup]代表欲備份的主機代號,可以和主機名相同,也可以自定。本例為backup,而沒有用asialinux以便大家在下面使用rsync命令時加以理解。 
Path就是用來存放備份檔案的絕對目錄,請你一定要用mkdir開設好,名稱自定,如本例要在/home目錄下面建立server目錄以及server下面的子目錄asialinux。 
注:如果你沒有建立目錄、目錄建立的不對或者路徑不對,都將不能進行rsync的備份,情況如下所示: 
#rsync –rvlHopDtS --password-file=/root/rsyncd.recrets /home feixue@testsmb::backup 
@ERROR:chroot failed 
rsync:connection unexpectedly closed (75 bytes read so far) 
rsync error: error in rsync protocol data stream (code 12) at io.c(165) 
auth users代表授權的賬號,名稱可自定。 
secrets file代表存儲賬號和密碼的檔案路徑。 
當然,大家可以在/etc/rsyncd.conf內加入更多的區塊,來備份多臺主機或者一臺主機的多個目錄等,可以靈活運用。 
4.設定:密碼文件 
如果沒有和ssh在一塊兒運用的話,rsyncd.secrets的內容很簡單,格式為 賬號:密碼 
例如: 
feixue:asialinux 
注:上述設定只是一個范例,請大家務必自定一組,千萬不可以直接套用。 
賬號和密碼設定完成之后,為了安全,還要對其屬主和權限進行限定,我測試過,server和client端的權限都設為000時,只要密碼兩者相符,依然可以正常的備份。:D 
#chown root.root rsyncd.secrets 
#chmod 600 rsyncd.secrets 
這樣,我們的Rsync Server端就設定完成了,當然你可以查看rsync的記錄日志檔案,請參考:/var/log/rsyncd.log。 
二、設置Rsync Client端 
假設欲備份的機器名稱為testsmb(IP:192.168.2.220)下的目錄/home備份到Rsync Server(asialinux)上。可以做如下設定: 
1.設定密碼文件 
2.測試rsync執行指令 
3.將rsync指令放入工作排程(crontab) 
說明如下: 
1.設定密碼文件 
假設把密碼文件放在/root/rsyncd.secrets,內容很簡單,只要含有一行密碼即可: 
#vi /root/rsyncd.secrets 
asialinux 
退出vi編輯模式并保存。 
注:為了安全,設定密碼檔案的屬性為:600。rsyncd.secrets的密碼一定要和Rsync Server密碼設定檔案里的密碼一樣。 
如果不同,將會出現如下的錯誤: 
#rsync –rvlHopDtS --password-file=/root/rsyncd.recrets /home feixue@testsmb::backup 
@ERROR: auth failed on module backup 
rsync: connection unexpectedly closed (90 bytes read so far) 
rsync error: error in rsync protocol data stream (code 12) at io.c(165) 
2. 測試rsync執行指令 
一切設定完之后,我們可以帶著興奮的心情來測試、體驗一下Rsync的魅力吧:) 
# rsync –rvlHopDtS --password-file=/root/rsyncd.recrets /home feixue@testsmb::backup 
如果出現如下所示的畫面,那么恭喜一下,成功了: 
上傳備份 
# rsync –rvlHopDtS --password-file=/root/rsyncd.recrets /home feixue@testsmb::backup 
下載備份 
# rsync -vzrtopg --delete --password-file=/etc/rsync.pass --progress user@192.168.1.26::shanxlu /home/wenti 
building file list ... done 
.profiles/Application Data/Microsoft/Office/WEBFDR16.INF 
.profiles/Application Data/Microsoft/WELCOME/DEFAULT.WBM 
若出現如下: 
# rsync –rvlHopDtS --password-file=/root/rsyncd.recrets /home feixue@testsmb::backup 
rsync: getaddrinto: testsmb 873: Name or service not know 
rsync error: error in socket IO (code 10 ) at clientserver.c(83) 
請分別編輯Rsync Server(假設hostname為asialinux,IP:192.168.0.1)和Rsync Client(假設hostname為testsmb,IP:192.168.0.2)的/etc/hosts文件,分別加入對方的IP地址和機器名,如下: 
[root@asialinux root]#vi /etc/hosts 
192.168.0.2     testsmb 
退出vi編輯模式并保存。 
[root@testsmb root]#vi /etc/hosts 
192.168.0.1     asialinux 
退出vi編輯模式并保存。 
如果沒有出現期望的畫面,那么請檢查一下你的設定。 
3.將rsync指令放入工作排程(crontab) 
現在可以把我們的備份工作置入排程了,假設每天凌晨1點開始備份工作: 
#crontab –u root –e 
0 1 * * * /usr/bin/rsync --password-file=/root/rsyncd.recrets /home feixue@testsmb::backup 
如果你有其他的目錄需要備份,則如法炮制吧 
@rsync 試用參數: 
-h , --help 顯示rsync求助資訊 
--version 顯示rsync版本 
-v , --verbose 復雜的輸出信息 
-q , --quiet 安靜模式,幾乎沒有訊息產生, 常用在以cron執行rsync 
-I, --ignore-times 通常rsync為了加快速度會忽略同樣檔案大小且同樣,同樣存取時間點的檔案 
可以通過此參數開關此快速檢查. 
--size-only rsync   只檢查檔案大小是否改變,不管時間存取點是否改變 
通常用在mirror, 且對方時間不太正確時 
-c, --checksum 在傳送之前透過128bit的md4檢查碼來檢查所有要傳送的檔案(會托滿速度); 
-a, --archive archive mode 權限保存模式,相當于 -rlptgoD 參數. 
很快速的保存幾乎所有的權限設定,除了硬式連接(透過-H設定). 
-r, --recursive 復制所有下面的資料(透過) 
-R, --relative 使用相對路徑 
如: rsync foo/bar/foo.c remote:/tmp/ 在遠端產生/tmp/foo.c檔案 
rsync -R foo/bar/foo.c remote:/tmp/ 在遠端產生/tmp/foo/bar/foo.c 檔案 
-R, --relative 不使用相對路徑 
-b, --backup 目的地端先前已經存在的檔案在傳輸或刪除前會被備份 
--backup-dir=DIR 設定備份的資料夾 
--suffix=SUFFIX 指定備份的檔案名稱字尾形式(預設為~) 
-K, --keep-dirlinks 接收方將連接到資料夾的檔案視為資料夾處理 
-l, --links 復制所有的連接 
-H, --hard-links 保留硬式連結 
-p, --perms 保留檔案權限 
-o, --owner 保留檔案所有者(root only) 
-g, --group 保留檔案群組 
-D, --devices 保留device資訊(root only) 
-t, --times 保留時間點 
-n, --dry-run 不實際執行傳送, 只顯示將會有的傳輸動作 
-S, --sparse 嘗試去處理稀疏的檔案, 讓這些檔案在目的端占去較少的磁碟空間 
-W, --whole-file 復制所有的檔案, 不額外作檢查 
--no-whole-file 關閉 --whole-file 參數 
-x, --one-file-system 不要跨越檔案系統分界(只在一個檔案系統處理) 
-B, --block-size=SIZE 強制透過rsync程式去比對修復block-sizeforce 
-e --rsh=COMMAND 定義所試用的remote shell 
--rsync-path=PATH 定義rsync在遠端機器存放資料的路徑 
--existing 只對比更新目的端已經存在的檔案 
--ignore-existing 忽略目的斷已經存在的檔案(也就是不更新) 
--delete 刪除傳送斷已經不存在,而目的端存在的檔案 
--delete-excluded 除了把傳送端已經不存在, 而目的端存在的檔案刪除之外, 也刪除 --exclude 參數所包含的檔案 
--delete-after rsync預設會在檔案傳送前進行相關刪除動作確保接收端有足夠的檔案空間, 
單可以透過 --delete-after 讓刪除動作在檔案傳送后在進行刪除 
--ignore-errors 忽略任何錯誤即使是I/O error 也進行 --delete 刪除動作 
--max-delete=NUM 定義rsync不要刪除超過NUM個檔案 
--partial rsync若遇到傳輸過程中斷時, 會把那些已經傳輸的檔案刪除. 
在某種狀況下保留那些部分傳送的檔案是令人高興的; 
你可以透過 --partial 參數達到這個目的. 
--partial-dir=DIR 在 --partial 參數啟動時, 你還是可以定義rsync把那些部分傳送的檔案 
寫入定義的資料夾, 而非直接寫入目的端,需要注意的是, 
此資料夾不應該被其他試用者可以寫入.(如:/tmp) 
--force 當目的端資料夾被傳送端非資料夾名稱覆蓋時, 強制rsync刪除資料夾, 即使該資料夾不是空的. 
--numeric-ids 不將傳送端檔案的uid及gid值, 與目的端的使用者/群組進行配對, 
若傳送端并沒有uid及gid的對應名稱(如:原帳號群組被刪除的遺留檔案), 
或目的端沒有相對應的帳號/群組, 保留數字型式的uid/gid 
--timeout=TIMEOUT 設定I/O 超時的時間(秒). 超過這個秒數而沒有資料傳送, rsync將會結束. 預設為0,也就是沒有定義超時時間 
-T, --temp-dir=DIR 定義rsync在接收端產生暫時性的復制檔案時使用資料夾暫存, 預設時直接在接收端資料夾直接產生暫存檔案 
--compare-dest=DIR 定義rsync在目的端建立資料夾來比對傳送過來的檔案. 
--link-dest=DIR 與 --compare-dest 相同,但同時會針對無法改變的檔案建立硬式連結. 
-z, --compress 壓縮模式, 當資料在傳送到目的端進行檔案壓縮. 
-P -P參數和 --partial --progress 相同.只是為了把參數簡單化. 
-C, --cvs-exclude 排除那些通常不希望傳送的檔案, 定義的方式與CVS傳送相同: 
RCS SCCS CVS CVS.adm RCSLOG cvslog.* tags TAGS .make.state 
.nse_depinfo *~ #* .#* ,* _$* *$ *.old *.bak *.BAK *.orig *.rej 
.del-* *.a *.olb *.o *.obj *.so *.exe *.Z *.elc *.ln core .svn/ 
符合以上條件的都會被忽略不傳送. 
--exclude=PATTER 符合PATTERN(規則表示式)樣式的檔案不僅行傳送 
--exclude-from=FILE 和 --exclude 參數相同, 不過是把不進行傳送的檔案事先寫入某一檔案. 
執行時, 透過此參數讓rsync讀取. 
(; #開頭的行列或者空白會被rsync忽略) 
--include=PATTERN 定義rsync不要排除符合pattern樣式的檔案 
--include-from=FILE 和--include參數相同,只不過把要包含的檔案寫到某一檔案. 
--files-from=FILE 把要傳送的檔案名稱都精確的寫入某一檔案, 讓rsync讀取. 
如: rsync -a --files-from=/tmp/foo /usr remote:/backup 
-0 --from0 定義檔案所要讀取的檔案時null字元結尾. 
--version 現四版本信息. 
--daemon 定義rsync以daemon型態執行 
--no-detach 當以daemon形態執行時,不要進行分裂且變成背景程序. 
--address=ADDRESS 定義所要連接(bind)的ip位置或者是host名稱(daemon限定) 
--config=FILE 定義所要讀取的設定檔rsyncd.conf位置(daemon限定) 
預設值為 /usr/local/etc/rsyncd.conf 
--port=PORT 定義rsyncd(daemon)要旨行的port(預設為tcp 873) 
--blocking-io 使用blocking I/O連結遠端的shell, 如rsh, remsh 
--no-blocking-io 使用non-blocking連結遠端的shell, 如ssh(預設值) 
--stats 顯示檔案傳送時的資訊狀態 
--progress 顯示傳送的進度.(給檔案傳送時,怕無聊的人用的..) 
--log-format=FORMAT 定義log的格式(在rsyncd.conf設定) 
--password-file=FILE 從檔案讀取與遠端rsync伺服務連結的密碼 
--bwlimit=KBPS 定義傳輸頻寬的大小(KBytes/秒) 
--write-batch=FILE 把記錄資料寫入一個檔案(給其他相同環境且相同需求的機器試用) 
--read-batch=FILE 透過讀取記錄檔案來進行傳輸.(檔案由 --write-batch 參數產生) 
--checksum-seed=NUM 定義檔案 checksum-seed 的大小(byte) 
-4 --ipv4 使用IPv4協定 
-6 --ipv6 使用IPv6協定