天天看點

linux應用之檔案實時同步(sersync)

<a href="http://hi.baidu.com/johntech/blog/item/be8559d2ebc99282a1ec9c18.html">http://hi.baidu.com/johntech/blog/item/be8559d2ebc99282a1ec9c18.html</a>

一..linux之間的檔案實時同步

sersync的設計用以替代inotify-tool工具,同樣是調用rsync+inotify來執行實時同步的,它的效率更高。

server端:

1.首先需要确定核心版本為2.6(支援inotify)并确認系統已經安裝rsync

請參考我如下的操作步驟:

2.配置rsync.conf:

以上的配置檔案說明在server配置了一個名為tongbu1的子產品,需要同步的目錄為/usr/local/test 通路的使用者名為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/

目前最新版本中已經增加了同步過濾,密碼驗證以及--delete功能,仍然不支援多目錄同步到多目錄的操作。

以上配置檔案我做一下解釋:使用使用者名transfer(密碼存放在/etc/rsync.pas中)将本機的/opt/tongbu/實時目錄同步到區域網路内38和188這兩個rsync server端定義的tongbu1和webbackup子產品中(我的截圖有一個錯誤188處的注釋沒完整去掉),并且開啟--delete功能。

3.啟用實時同步功能(完整同步一次并開啟駐留程序)

-bash-3.2# ./sersync2 -d -r

請使用 sersync --heltp 擷取幫助

linux之間的實時檔案同步到這裡就完成了、

二.linux向windows做實時的檔案同步

這個可以通過samba挂載windows目錄到linux上面實作。我們仍然采用sersync進行實時同步。window安裝比較簡單,就不截圖了

1..在windows端下載下傳cwrsync

<a href="http://sourceforge.net/project/showfiles.php?group_id=69227&amp;package_id=68081">http://sourceforge.net/project/showfiles.php?group_id=69227&amp;package_id=68081</a>

2..安裝并編輯rsyncd.conf檔案

3..設定RsyncServer為自動啟動

幾點說明:配置和linux下的是差不多的。要注意的是密碼檔案的所有使用者的讀屬性都要去掉,我這裡權限出了問題。記得同步的目錄d盤的cms檔案夾要開啟SvcCWRSYNC使用者的完全控制權限,記得修改配置檔案後重新開機服務。

更改密碼檔案屬組方法:

在cmd下進入安裝目錄,chmod 600 /rsyncd.passwd

錯誤invalid uid nobody處置辦法:

打開配置檔案:rsyncd.conf

在檔案開頭添加

uid = 0

gid = 0

3..用戶端的配置

同之前linux到linux之間的實時同步是一樣的

三.windows到linux之間的資料實時同步

提供以下三種方法供各位參考,其中方法一和方法二延時約1分鐘,方法三實時。

1..linux通過samba挂載windows目錄

遺憾的是在server端的資料更改,samba并不通知核心,inotify也就無法檢視到。可以定時(幾秒鐘)向挂載的目錄中echo一個空檔案,用以激活inotify進行同步。經過線上使用此方法尚可,延時不到1分。samba的效率确實不高 

2.sersync定期去取位于windows下的cwrsync定義的子產品内容

配置就不提供了,經過試驗此方式效率優于samba但是仍然不能做到實時,即使每秒鐘去同步一次也不可以。

3.借助windows下的軟體實作

我們使用此種方式在沒有專線的情況下每天大約實時傳輸約3g的資料量,暫時沒有出現什麼問題。

繼續閱讀