rsync中文手冊之使用rsync實現網站鏡像和備份linux第1/3頁

來源:互聯網
上載者:User

簡介
對於選擇Linux 作為應用平台的的中小型企業或網站來說,往往面臨如何?資料遠程備份或者網站鏡象的問題,雖然有商業化的備份和鏡象產品可供選擇,但這些產品的價格往往過於昂貴。因此如何利用自由軟體高效實現遠程備份和網站鏡象就成為一個值得討論的話題。
通過網路進行遠端資料備份或者網站鏡象的最簡單的方法就是使用wget,但是這種方式每次都需要將所有資料都重新在網路上傳輸一遍,而不考慮哪些檔案是經過更新的,因此效率非常低下。尤其在需要備份的資料量很大的時候,往往需要花費數個小時來在網路上進行資料轉送。
因此這裡就介紹一種高效的網路遠程備份和鏡象工具-rsync,它可以滿足絕大多數要求不是特別嚴格的備份需求。
rsync是類unix系統下的資料鏡像備份工具,從軟體的命名上就可以看出來了——remote sync。它的特性如下:
可以鏡像儲存整個分類樹和檔案系統。
可以很容易做到保持原來檔案的許可權、時間、軟永久連結等等。
無須特殊許可權即可安裝。
最佳化的流程,檔案傳輸效率高。
可以使用rcp、ssh等方式來傳輸檔案,當然也可以通過直接的socket串連。
支援匿名傳輸,以方便進行網站鏡象。
軟體下載
rysnc的首頁地址為:
http://rsync.samba.org/
目前最新版本為2.4.6。可以選擇從原始網站下載:http://rsync.samba.org/ftp/rsync/。也可以選擇從本站下載:rsync 2.4.6。
編譯安裝
rsync的編譯安裝非常簡單,只需要以下簡單的幾步:
[root@www rsync-2.4.6]# ./configure
[root@www rsync-2.4.6]# make
[root@www rsync-2.4.6]# make install
但是需要注意的是必須在伺服器A和B上都安裝rsync,其中A伺服器上是以伺服器模式運行rsync,而B上則以用戶端方式運行rsync。這樣在web伺服器A上運行rsync守護進程,在B上定時運行客戶程式來備份web伺服器A上需要備份的內容。
rsync伺服器
1、rsync伺服器的啟動
在web伺服器A上需要以守護進程方式來啟動rsync伺服器,只需要運行:
[root@www rsync-2.4.6]# /usr/local/bin/rsync --daemon
即可啟動。rsync預設服務連接埠為873,伺服器在該連接埠接收客戶的匿名或者認證方式的備份請求。
如果要在啟動時把服務起來,有幾種不同的方法,比如:
a、加入inetd.conf
編輯/etc/services,加入rsync 873/tcp,指定rsync的服務連接埠是873。編加/etc/inetd.conf,加入rsync stream tcp nowait root /bin/rsync rsync --daemon
註:對於xinetd,設定方法類似。
b、加入rc.local
編輯/etc/rc.d/rc.local,在最後添加:
/usr/local/bin/rsync --daemon
2、rsync的配置
對於rsync伺服器來說,最重要和複雜的就是它的配置了。rsync伺服器的設定檔為/etc/rsyncd.conf,其控制認證、訪問、日誌記錄等等。
該檔案是由一個或多個模組結構組成。一個模組定義以方括弧中的模組名開始,直到下一個模組定義開始或者檔案結束,模組中包含格式為name = value的參數定義。每個模組其實就對應需要備份的一個分類樹,比方說在我們的執行個體環境中,有三個分類樹需要備份:/www/、 /home/web_user1/和/home/web_user2/,那麼就需要在設定檔中定義三個模組,分別對應三個分類樹。
設定檔是行為單位的,也就是每個新行都表示一個新的注釋、模組定義或者參數賦值。以#開始的行表示注釋,以"\"結束的行表示下面一行是該行的繼續。參數賦值中等號後可能是一個大小寫不敏感的字串、一個以trure/false表示的布爾值。
全域參數
在檔案中[modlue]之前的所有參數都是全域參數,當然也可以在全域參數部分定義模組參數,這時候該參數的值就是所有模組的預設值。
motd file
"motd file"參數用來指定一個訊息檔案,當客戶串連伺服器時該檔案的內容顯示給客戶,預設是沒有motd檔案的。
log file
"log file"指定rsync的記錄檔,而不將日誌發送給syslog。
pid file
指定rsync的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。
模組參數
在全域參數之後就需要定義一個或多個模組了,模組中可以定義以下參數:
comment
給模組指定一個描述,該描述連同模組名在客戶串連得到模組列表時顯示給客戶。預設沒有描述定義。
path
指定該模組的供備份的分類樹路徑,該參數是必須指定的。
use chroot
如果"use chroot"指定為true,那麼rsync在傳輸檔案以前首先chroot到path參數所指定的目錄下。這樣做的原因是實現額外的安全防護,但是缺點是需要以roots許可權,並且不能備份指向外部的符號串連所指向的目錄檔案。預設情況下chroot值為true。
max connections
指定該模組的最大並發串連數量以保護伺服器,超過限制的串連請求將被告知隨後再試。預設值是0,也就是沒有限制。
lock file
指定支援max connections參數的鎖檔案,預設值是/var/run/rsyncd.lock。
read only
該選項設定是否允許客戶上傳檔案。如果為true那麼任何上傳請求都會失敗,如果為false並且伺服器目錄讀寫權限允許那麼上傳是允許的。預設值為true。
list
該選項設定當客戶請求可以使用的模組列表時,該模組是否應該被列出。如果設定該選項為false,可以建立隱藏的模組。預設值是true。
uid
該選項指定當該模組傳輸檔案時守護進程應該具有的uid,配合gid選項使用可以確定哪些可以訪問怎麼樣的檔案許可權,預設值是"nobody"。
gid
該選項指定當該模組傳輸檔案時守護進程應該具有的gid。預設值為"nobody"。
exlude
用來指定多個由空格隔開的多個模式列表,並將其添加到exclude列表中。這等同於在用戶端命令中使用--exclude來指定模式,不過設定檔中指定的exlude模式不會傳遞給用戶端,而僅僅應用於伺服器。一個模組只能指定一個exlude選項,但是可以在模式前面使用"-"和"+"來指定是 exclude還是include。
但是需要注意的一點是該選項有一定的安全性問題,客戶很有可能繞過exlude列表,如果希望確保特定的檔案不能被訪問,那就最好結合uid/gid選項一起使用。
exlude from
指定一個包含exclude模式的定義的檔案名稱,伺服器從該檔案中讀取exlude列表定義。
include
用來指定多個由空格隔開的多個rsync並應該exlude的模式列表。這等同於在用戶端命令中使用--include來指定模式,結合 include和 exlude可以定義複雜的exlude/include規則。一個模組只能指定一個include選項,但是可以在模式前面使用"-"和"+"來指定是 exclude還是include。
include from
指定一個包含include模式的定義的檔案名稱,伺服器從該檔案中讀取include列表定義。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.