公司最近業(yè)務(wù)需求,要實(shí)時(shí)同步windows與linux,linux與linux之間的數(shù)據(jù)。我們使用是sersync這個(gè)開源的軟件,是由金山才子所寫。項(xiàng)目詳情請(qǐng)?jiān)L問(wèn):
http://code.google.com/p/sersync/ qq群:37499077 歡迎討論
一..linux之間的文件實(shí)時(shí)同步
sersync的設(shè)計(jì)用以替代inotify-tool工具,同樣是調(diào)用rsync+inotify來(lái)執(zhí)行實(shí)時(shí)同步的,它的效率更高。
server端:
1.首先需要確定內(nèi)核版本為2.6(支持inotify)并確認(rèn)系統(tǒng)已經(jīng)安裝rsync
請(qǐng)參考我如下的操作步驟:
2.配置rsync.conf:
以上的配置文件說(shuō)明在server配置了一個(gè)名為tongbu1的模塊,需要同步的目錄為/usr/local/test 訪問(wèn)的用戶名為transfer,密碼存放文件為rsyncd.secrets。注意修改密碼文件的屬性600.
3.開啟rsync daemon格式
client端配置:
1..首先需要下載sersync最新版本2.5
2.解壓并編輯confxml.xml ,confxml.xml 是sersync的配置文件,用于指定需要同步的目錄及是否刷新cdn接口等
-bash-3.2# tar zxvf sersync2[1].5beta1_32bit_binary.tar.gz
-bash-3.2# cd GNU-Linux-x86/
當(dāng)前最新版本中已經(jīng)增加了同步過(guò)濾,密碼驗(yàn)證以及--delete功能,仍然不支持多目錄同步到多目錄的操作。
以上配置文件我做一下解釋:使用用戶名transfer(密碼存放在/etc/rsync.pas中)將本機(jī)的/opt/tongbu/實(shí)時(shí)目錄同步到局域網(wǎng)內(nèi)38和188這兩個(gè)rsync server端定義的tongbu1和webbackup模塊中(我的截圖有一個(gè)錯(cuò)誤188處的注釋沒(méi)完整去掉),并且開啟--delete功能。
3.啟用實(shí)時(shí)同步功能(完整同步一次并開啟駐留進(jìn)程)
-bash-3.2# ./sersync2 -d -r
請(qǐng)使用 sersync --heltp 獲取幫助
linux之間的實(shí)時(shí)文件同步到這里就完成了、
二.linux向windows做實(shí)時(shí)的文件同步
這個(gè)可以通過(guò)samba掛載windows目錄到linux上面實(shí)現(xiàn)。我們?nèi)匀徊捎胹ersync進(jìn)行實(shí)時(shí)同步。window安裝比較簡(jiǎn)單,就不截圖了
1..在windows端下載cwrsync
2..安裝并編輯rsyncd.conf文件
3..設(shè)置RsyncServer為自動(dòng)啟動(dòng)
幾點(diǎn)說(shuō)明:配置和linux下的是差不多的。要注意的是密碼文件的所有用戶的讀屬性都要去掉,我這里權(quán)限出了問(wèn)題。記得同步的目錄d盤的cms文件夾要開啟SvcCWRSYNC用戶的完全控制權(quán)限,記得修改配置文件后重啟服務(wù)。
更改密碼文件屬組方法:
在cmd下進(jìn)入安裝目錄,chmod 600 /rsyncd.passwd
錯(cuò)誤invalid uid nobody處置辦法:
打開配置文件:rsyncd.conf
在文件開頭添加
uid = 0
gid = 0
3..客戶端的配置
同之前l(fā)inux到linux之間的實(shí)時(shí)同步是一樣的
三.windows到linux之間的數(shù)據(jù)實(shí)時(shí)同步
提供以下三種方法供各位參考,其中方法一和方法二延時(shí)約1分鐘,方法三實(shí)時(shí)。
1..linux通過(guò)samba掛載windows目錄
遺憾的是在server端的數(shù)據(jù)更改,samba并不通知內(nèi)核,inotify也就無(wú)法檢視到??梢远〞r(shí)(幾秒鐘)向掛載的目錄中echo一個(gè)空文件,用以激活inotify進(jìn)行同步。經(jīng)過(guò)線上使用此方法尚可,延時(shí)不到1分。samba的效率確實(shí)不高
2.sersync定期去取位于windows下的cwrsync定義的模塊內(nèi)容
配置就不提供了,經(jīng)過(guò)試驗(yàn)此方式效率優(yōu)于samba但是仍然不能做到實(shí)時(shí),即使每秒鐘去同步一次也不可以。
3.借助windows下的軟件實(shí)現(xiàn)
我們使用此種方式在沒(méi)有專線的情況下每天大約實(shí)時(shí)傳輸約3g的數(shù)據(jù)量,暫時(shí)沒(méi)有出現(xiàn)什么問(wèn)題。