close
*實驗環境*
Rsync Server (CentOS 5.5: nodea): 同步資料夾 /data
假設 Rsync Server 為遊戲企業散發新的資料檔至其他同款N台伺服器的
Primary Sync Distribute Server
Primary Sync Distribute Server
Rsync Clinet (CentOS 5.5: mail): 同步資料夾 /data
Rsync Clinet : 為接收 Rsymc Server 資料 同步角色(Exsample: 適用同款遊戲架構
Game Server 改版時相關檔案同步更新 )
*Rsync 是Lnux 很好同步工具,尤其是當建立Rsync Server 時可以 1對多 透過rsync
同步多台client 主機*
同步多台client 主機*
1.) Rsync Server (nodea:192.168.0.111): [建立SSH 驗證登入無須密碼 ]
*主要為了讓client 主機於進行rsync同步時無須詢問nodea 系統帳號登入密碼*
shll> ssh-keygen -t rsa #切勿輸入密碼,利用rsa加密方式

接者我們將上一步產生於 /root/.ssh/id_rsa.pub 此檔利用scp 將該檔案傳輸自
mail(192.168.0.197) 主機的 /root/.ssh/ 目錄下
mail(192.168.0.197) 主機的 /root/.ssh/ 目錄下
並更名為authorized_keys

利用nodea(Rsync Server) SSH 登入 mail(Rsync Client)驗證是否已可無密碼登入mail
此台主機(下圖已測試OK)
此台主機(下圖已測試OK)

(2.) 編輯/etc/rsyncd.conf(Rsync Server 主要設定檔): 加入以下
[server_update] #module name
comment = sync data to mail #註解
auth user = keynes
# Rsync Server 採用帳號密碼驗證client 同步,定義一rsync 帳號
# Rsync Server 採用帳號密碼驗證client 同步,定義一rsync 帳號
path = /data
#定義 Rsync Server 使用哪個資料夾藉此與client 端進行同步,填入資料夾路徑
#定義 Rsync Server 使用哪個資料夾藉此與client 端進行同步,填入資料夾路徑
secrets file = /etc/rsyncd.secrets #指定 Rsync Server 驗證帳號與密碼

vi /etc/rsyncd.secrets #編輯rsync server 驗證密碼檔案 格式: acount:passwd
keynes:12345 #修改完成後存檔
shell> chmod 600 /etc/rsyncd.secrets #對明碼之密碼檔案做保護
接者請利用scp 將 /etc/rsyncd.secrets copy傳輸至 root@192.168.0.197:/etc/
shell>scp /etc/rsyncd.secrets root@192.168.0.197:/etc/ #此step 貼圖省略

修改完成後請_重新啟動xinetd
/etc/init.d/xinetd restart

(3.) [ mail(Rsync Client)]測試同步
登入 Rsync Client : 初步測試同步
shell> rsync -avz root@192.168.0.111:server_update /data
#:server_update : 為我們在rsyncd.conf 中定義module name
,藉此區隔多組同步組態
,藉此區隔多組同步組態
參數 a: --archive archive mode, equivalent to -rlptgoD
v: 顯示同步執行過程
z: --compress compress file data

我們轉換至nodea(Rsync Server) /data 建立名為keynes 檔案
shell> echo 'hello' > /data/keynes

切換 mail : 手動再進行同步一次(下圖已同步成功)

寫入crontab 排程執行rsync
vi /usr/local/bin/update.sh
#下圖參數多了--delete : 若rsync server 刪除某同步資料夾檔案,當rsync 下次同步時將
同步刪除該檔案
同步刪除該檔案
開機自動啟動rsync
shell> chkconfig rsync on

crontab -e #Client 端 掛入排程定期執行與Rsync 每隔三十分鐘同步一次

下圖為測試 --delete 參數,測試OK展示
全站熱搜