字體:  

使用 Rsync Server 做為異地備份機制

adj 發表於: 2007-11-12 11:46 來源: ADJ網路控股集團


轉貼自: http://phorum.study-area.org/viewtopic.php?t=15553

用rsync做備份
會用rsync 是因為我用mirror去備份windows上的東西時,會有目錄結構上的問題.
且我要備份的檔案都上百MB用mirror去備份也不實際,基於這二點我就試了rsync.
http://phorum.study-area.org/viewtopic.php?p=75850#75850

關於rsync 的優點可以參考下面的連結,也是我實作時參考的資料.
http://linux.tnc.edu.tw/techdoc/rsync.htm
http://www.linux.org.tw/~pahud/rsync.html
http://www.fanqiang.com/a6/b7/20010908/1305001258_b.html



rsync on linux

檢查有沒有安裝rsync套件.

rpm -qa | grep rsync

若沒有,到
http://rpmfind.net/linux/rpm2html/search.php?query=rsync

http://rsync.samba.org/download.html
下載安裝.


設定Rsync Server.


vi /etc/xinetd.d/rsync

CODE:

disable = noservice xinetd restart



[主機代號:自訂]
path = 備份資料放置的路徑
auth users = 定義援權的帳號
uid = 應是執行時的uid
gid = 應是執行時的gid
secrets file = 認證密碼檔的位置
read only = 是否唯讀

自行建立rsyncd.conf
vi /etc/rsyncd.conf

CODE:

[apache]
path = /home/users/public/Studio
auth users = apache-admin
uid = root
gid = root
secrets file = /etc/rsyncd.secrets
read only = no
自行建立rsyncd.secrets
vi rsyncd.secrets

CODE:

apache-admin:secretchown root:root /etc/rsyncd.secrets
chmod 600 /etc/rsyncd.secrets



設定Rsync Client.

自行建立rsyncd.secrets
vi /etc/rsyncd.secrets

CODE:

secretchmod 600 /etc/rsyncd.secrets

執行
/usr/bin/rsync -vzrtopg --progress --delete --password-file=/etc/rsyncd.secrets /var/www/html apache-admin@172.16.7.253::apache

看看/home/users/public/Studio看看有沒有備份過來吧!!  ^^
另外若"/var/www/html apache-admin@172.16.7.253::apache"的位罝對調,則備份的方向也對調哦!


ps: /var/www/html 為client 端,欲備份的目錄,而172.16.7.253為server ip


參考資料
http://linux.tnc.edu.tw/techdoc/rsync.htm
http://www.linux.org.tw/~pahud/rsync.html
http://www.fanqiang.com/a6/b7/20010908/1305001258_b.html





RSync 實作紀錄於 Windows 2k pro

這是我參考下面這份文件做出來的.
http://www.numbski.net/rsync/

下載http://users.tseinc.com/~numbski/rsync.zip,並解壓至c:\rsync
複製 cygwin1.dll 到C:\WINNT\system32下.

接著進command line,執行下面三行.

cd c:\rsync
instsrv Rsync "c:\rsync\srvany.exe"
exit

按"開始","執行",下"regedit"

搜找下列機碼.
HKEY_LOCAL_MACHINE -> SYSTEM -> CurrentControlSet -> Services -> Rsync

在Rsync按右鍵,"新增"->"機碼",名稱改為Parameters
在Parameters按右鍵,"新增"->"字串值",名稱改為AppDirectory,執行它,並在"值的資料"輸入"c:\rsync"
在Parameters按右鍵,"新增"->"字串值",名稱改為Application,執行它,並在"值的資料"輸入"c:\rsync\rsync.exe"
在Parameters按右鍵,"新增"->"字串值",名稱改為AppParameters,執行它,並在"值的資料"輸入--c --daemon

再來執行"控制台"->"系統管理工具"->"服務"找到Rsync按右鍵"啟動"

接著進command line執行:

telnet localhost 873

接著下quit

cd c:\rsync
rsync localhost::

您應該會看到"mame"出現在螢幕上.
若看到那表示,您的rsync己經是work的了.  ^^

接下來,在下將在linux及windows 2k pro上做測試,二個平台互為server及client,並使用不認證使用者的方式.
環境:
pc-a為linux
ip為172.16.7.253
欲備份的目錄為        /rsync_data/output
備份的目錄為        /rsync_data/input


pc-b為windows
ip為 172.16.4.4
欲備份的目錄為        c:\rsync_data\output
備份的目錄為        c:\rsync_data\input


先設定linux上的rsyncd.conf檔.

vi /etc/rsyncd.conf

CODE:

[pc-a_output]
path = /rsync_data/output
readonly = yes
再設windows上的rsyncd.conf檔.

編輯 C:\rsync\rsyncd.conf

CODE:

[pc-b_output]
path = c:\rsync_data\output
readonly = yes
這樣就設好了,分別執行看看(執行時別忘了,copy 些不同的資料到pc-a及pc-b的output目錄哦!).

從pc-1上把pc-b上的rsync server 備份回來.

/usr/bin/rsync -arv --delete   172.16.4.4::pc-b_output /rsync_data/input

從pc-2上把pc-a上的rsync server 備份回來.

c:\rsync\rsync.exe -arv --delete 172.16.7.253::pc-a_output c:\rsync_data\input

好啦!看看pc-a及pc-b的input目錄下,是不是有對方output目錄的東西呢?若看到了就成功囉!

另外,我在linux與linux加上AUTH皆沒問題,但一遇上windows就會 auth failed,不清楚為什麼,所以只好先用不認證的方式了.

在windows上使用sync2nas做client端.

算是下面這份文件的補充吧!
http://phorum.study-area.org/vie ... 220&highlight=rsync


到這下載安裝.
http://sourceforge.net/project/s ... 66&release_id=79188
執行.
從左上角選擇您欲備份的資料然後按">>"丟到右邊.

再來要設定左下角的項目.

Appliance or Virtual IP: 輸入您的server位址
Share Name:主機代號
Remote Forder:遠端目錄,若這裡有定義,則資料將置此目錄下.
User Name:帳號
Password:密碼
Rsync Options:參數

Appliance or Virtual IP: 172.16.7.253
Share Name:apache
Remote Forder:
User Name:apache-admin
Password:secret
Rsync Options:-vzrtopg --progress --delete

若要更改User Name及Rsync Options可從功能表的Advanced將其enable.

右下角設定定,執行的時間及執行身份
例如:
選Replicate Once Immediately就是馬上執行.

最後在按Apply執行吧!