天天看點

cwRsyncServer從windows下資料實時同步到linux伺服器上的實作過程

    由于公司有兩台windows伺服器,開發在操作時一般也都是在這兩台伺服器上上傳一些資料或修改一些東西,而Linux上的伺服器也要跟windows上的資料要保持一緻而又不需要人為的實作這個過程,基于此過程,昨天花了點時間,完成了基本的測試實作過程,今天就把這過程給記錄下來,友善以後檢視,以希望可以幫到還在困惑的朋友們。

第一步:在windows上的安裝cwRsyncServer4.1.0以及配置過程:

    在windows上下載下傳安裝包cwRsyncServer4.rar,這個不多解析,大家都懂,要是在虛拟機上安裝windowd伺服器的,如果你的windows伺服器上不了網,那就在本機上下載下傳好持拷貝過去就好了,如果還不知道怎麼拷貝到windows上去的話那就在linux上建個ftp伺服器,把檔案丢裡面去共享就可以拷貝了。

    在拷貝中如果出現這個問題:windows 2003目前的安全設定不允許從該位置下載下傳檔案的解決方案:

    隻需要設定Internet選項-->安全-->自定義級别 找到下載下傳項中的“檔案下載下傳”,啟用即可。

如下是cwRsyncServer安裝過程,一直點下一步就可以了,這裡就不一一貼出來了:

    這裡需要建立一個帳戶,就用預設的就好了,設定一個自己的密碼就OK了。

    安裝完成之後下面開始配置,打開安裝目錄下的檔案目錄:C:\Program Files (x86)\ICW,修改rsyncd.conf配置檔案的内容為以下配置;

    到這裡了就要在F盤下建立一個rsyncdata的目錄,這個目錄就是指它裡面的所有資料同步到linux的指定目錄去的,也就是windows下的rsyncd.conf配置檔案的[rsyncdata]子產品對應的檔案,建立好之後我們還需要改一些配置:    

1

2

3

4

5

6

7

<code>    </code><code>[rsyncdata]    </code><code>#指定子產品的頭資訊</code>

<code>    </code><code>path = </code><code>/cygdrive/f/rsyncdata</code>    <code>#需要同步資料的目錄,這個目錄指F盤下的rsyncdata目錄</code>

<code>    </code><code>read</code> <code>only = </code><code>true</code>    <code>#是否為隻讀</code>

<code>    </code><code>list = no</code>

<code>    </code><code>hosts allow = 10.17.1.200,10.17.1.88,10.17.1.60 </code><code>#允許通路的主機,多個用逗号分隔</code>

<code>    </code><code>auth </code><code>users</code> <code>= </code><code>rsync</code>    <code>#指定認證的使用者名</code>

<code>    </code><code>secrets </code><code>file</code> <code>= </code><code>/cygdrive/f/rsyncd</code><code>.secrets    </code><code>#指定認證使用者的密碼檔案存放路徑,這個路徑指F盤下的rsyncd.secrets,一會需要建立這個檔案</code>

    還需要修改一下rsyncdata這個目錄的一些相關屬性資訊,右鍵這個檔案選屬性:

輸入完SvcCWRSYNC這個使用者名後點“檢查名稱”就可以比對上了,再點确定就OK了。

最後再改一下這個檔案對這個使用者的通路權限:

選中我的電腦--右鍵管理---服務和應用--服務,找到RsyncSever,輕按兩下--啟動,把這個伺服器起動起來:

到這裡應該是說windows下的就配置完了,但是要注意的是如果你的linux需要用telnet來連接配接到windows上來的話那windows上的防火牆記得要關閉,否則很可能連不上去,也可以在本上的測試一下,出現以下情況就說明可以連接配接上去了,說明windows服務可用了。

    在cmd下輸入你windows的本機位址和rsync的監聽端口,它的預設監聽的端口是873,回車:

    出現@RSYNCD:30.0這個就說明可以連接配接上去了。

二、Rsync用戶端配置,這個就需要linux上做配置了,相關的配置見如下過程:

1、檢視selinux機制,關閉selinux

[root@node1 ~]# getenforce

Disabled

2、安裝Rsync用戶端軟體

[root@node1 ~]# yum install rsync xinetd

3、需要安裝這兩個軟體包就可以了,安裝好之後就要修改一點配置檔案了:

[root@node1 ~]# vi /etc/xinetd.d/rsync #編輯配置檔案,設定開機啟動rsync ,Centos上的rsync使用xinetd啟用的

将disable=yes,改為no

service rsync

{

        disable = no

        socket_type     = stream

        wait            = no

        user            = root

        server          = /usr/bin/rsync

        server_args     = --daemon

        log_on_failure += USERID

}

/etc/init.d/xinetd start #啟動xinetd這個服務

4、修改之後就遠端連接配接測試一下,記得把windows的防火牆給關閉了哦,要不然很可能會連接配接不上的,或都在windows防火牆上開放873這個端口

<a href="http://s3.51cto.com/wyfs02/M02/45/BE/wKiom1PqxqfwxhnUAABZ0Zz9Akk082.jpg" target="_blank"></a>

OK,說明連接配接到windows上成功了,那接下來我們就建立一個與windows下同步的目錄了:

[root@node1 ~]# mkdir pv /rsyncdata/data

    為了同步資料時不用每次都不手動輸入密碼,我們在用戶端(linux下)也建立一個和服務端(windows)一樣的密碼檔案(此檔案路徑和密碼要與伺服器端的一樣,用戶端不用寫名字)

[root@node1 ~]# vim /etc/rsyncd.secrets #隻需要寫上伺服器端上的使用者密碼就可以了

[root@node1 ~]# chmod 600 /etc/rsyncd.secrets  #改一下權限

5、到這裡我們就可以寫指令來拉取windows伺服器端上的資料了:

[root@node1 ~]# rsync -vazrtopqg --delete --password-file=/etc/rsyncd.secrets [email protected]::rsyncdata/* /rsyncdata/data/

<a href="http://s3.51cto.com/wyfs02/M02/45/BE/wKiom1PqyODh9NdHAAEGsrXk-Fc256.jpg" target="_blank"></a>

傳輸成功,這裡說明一下這幾個參數表示什麼:

-v, --verbose #詳細模式輸出

-q, --quiet #精簡輸出模式

-a, --archive #歸檔模式,表示以遞歸方式傳輸檔案,并保持所有檔案屬性,等于-rlptgoD

-r, --recursive #對子目錄以遞歸模式處理 

-o, --owner #保持檔案屬主資訊 

-g, --group #保持檔案屬組資訊

-t, --times #保持檔案時間資訊

--delete #删除那些DST中SRC沒有的檔案 

--password-file=FILE #從FILE中得到密碼

6、為了一是每次有資料修改時都要手動去同步一步,我們把這個指令寫成一個腳本,再添加一個任務計劃,這個就可以實作自動同步資料了;

<a href="http://s3.51cto.com/wyfs02/M00/45/C0/wKioL1Pqy4awIx0nAABfDvqmtkY675.jpg" target="_blank"></a>

[root@node1 ~]# crontab -e

* * * * * /bin/bash /root/rsync.sh &amp;&gt; /dev/null  #我們設定每分鐘同步一次

    OK了,到這裡我們的整個的配置算是完成了,可能還做得不到的地方,希望朋友們發現了給我指出哦,在此先謝過了。

本文轉自 wei0164 51CTO部落格,原文連結:http://blog.51cto.com/tanxw/1539252,如需轉載請自行聯系原作者