當有大量的資料需要定期傳輸,但是並無太多變更時,rsync 就非常有用。例如,當建立備份時就非常適用。另一個應用程式則將焦點放在建置伺服器。這些伺服器儲存了網頁伺服器的完整目錄樹狀結構,會定期鏡像處理至 DMZ 中的網頁伺服器。
rsync 可以使用兩個模式來操作。它是用來歸檔或複製資料。若要完成此動作,在目標系統上只需要像是 ssh 的遠端外圍程序。然而,rsync 也可以像 daemon 一樣,用來為網路提供目錄。
rsync 的基本作業模式並不需要任何特殊的組態。rsync 直接允許將完整的目錄鏡像處理至另一個系統。例如,下列指令可在名為 sun 的備份伺服器上建立 tux 主目錄的備份:
rsync -baz -e ssh /home/tux/ tux@sun:backup
下列指令可用來還原目錄:
rsync -az -e ssh tux@sun:backup /home/tux/
到此為止,其處理方式與一般的複製工具 (例如 scp) 的處理沒有太大的差別。
rsync 應該在 「rsync」 模式中操作,才能充分使用其所有的功能。執行方法是在其中一個系統上啟動 rsyncd 精靈。在 /etc/rsyncd.conf
檔案中設定它。例如,如果要讓 /srv/ftp
目錄可供 rsync 使用,請使用下列組態:
gid = nobody uid = nobody read only = true use chroot = no transfer logging = true log format = %h %o %f %l %b log file = /var/log/rsyncd.log [FTP] path = /srv/ftp comment = An Example
接著使用 rcrsyncdstart
來啟動 rsyncd。在開機程序期間也可以自動啟動 rsyncd。設定的方式有兩種,一是在 YaST 所提供的 runlevel 編輯器中啟用此服務,另一是手動輸入 insservrsyncd
指令。rsyncd 也可以由 xinetd 啟動。然而,只有對很少使用 rsyncd 的伺服器才建議這麼做。
本範例也建立了傾聽所有連接的記錄檔。這個檔案是儲存在 /var/log/rsyncd.log
。
這樣才可以從用戶端系統測試傳輸。使用下列指令來執行此動作:
rsync -avz sun::FTP
此指令會列出伺服器上 /srv/ftp
目錄中所有存在的檔案。這個要求也會記錄在 /var/log/rsyncd.log
記錄檔中。若要啟動實際的傳輸,請提供目標目錄。請使用 。使用
來代表目前的目錄。例如:
rsync -avz sun::FTP .
依照預設,在使用 rsync 同步化時不會刪除檔案。如果要強制刪除檔案,就必須加上額外的選項 --delete
。若要確保不會刪除較新的檔案,則可以改用 --update
選項。任何產生的衝突都必須手動解決。
關於 rsync 的重要資訊,請參閱手冊頁面。指令為 manrsync
和 manrsyncd.conf
。如需關於 rsync 作業原則的技術參考資料,可在 /usr/share/doc/packages/rsync/tech_report.ps
中找到。您可以在專案網站 http://rsync.samba.org/ 上找到關於 rsync 的最新消息。
若您想要 Subversion 或其他工具,請下載 SDK。請參閱http://developer.novell.com/wiki/index.php/SUSE_LINUX_SDK。