cwRsyncServer從windows下數(shù)據(jù)實(shí)時(shí)同步到linux服務(wù)器上的實(shí)現(xiàn)過(guò)程
由于公司有兩臺(tái)windows服務(wù)器,開(kāi)發(fā)在操作時(shí)一般也都是在這兩臺(tái)服務(wù)器上上傳一些數(shù)據(jù)或修改一些東西,而Linux上的服務(wù)器也要跟windows上的數(shù)據(jù)要保持一致而又不需要人為的實(shí)現(xiàn)這個(gè)過(guò)程,基于此過(guò)程,昨天花了點(diǎn)時(shí)間,完成了基本的測(cè)試實(shí)現(xiàn)過(guò)程,今天就把這過(guò)程給記錄下來(lái),方便以后查看,以希望可以幫到還在困惑的朋友們。
第一步:在windows上的安裝cwRsyncServer4.1.0以及配置過(guò)程:
在windows上下載安裝包c(diǎn)wRsyncServer4.rar,這個(gè)不多解析,大家都懂,要是在虛擬機(jī)上安裝windowd服務(wù)器的,如果你的windows服務(wù)器上不了網(wǎng),那就在本機(jī)上下載好持拷貝過(guò)去就好了,如果還不知道怎么拷貝到windows上去的話(huà)那就在linux上建個(gè)ftp服務(wù)器,把文件丟里面去共享就可以拷貝了。
在拷貝中如果出現(xiàn)這個(gè)問(wèn)題:windows 2003當(dāng)前的安全設(shè)置不允許從該位置下載文件的解決方案:
只需要設(shè)置Internet選項(xiàng)-->安全-->自定義級(jí)別 找到下載項(xiàng)中的“文件下載”,啟用即可。
如下是cwRsyncServer安裝過(guò)程,一直點(diǎn)下一步就可以了,這里就不一一貼出來(lái)了:
這里需要?jiǎng)?chuàng)建一個(gè)帳戶(hù),就用默認(rèn)的就好了,設(shè)置一個(gè)自己的密碼就OK了。
#p#
安裝完成之后下面開(kāi)始配置,打開(kāi)安裝目錄下的文件目錄:C:\Program Files (x86)\ICW,修改rsyncd.conf配置文件的內(nèi)容為以下配置;
這里要注意的是,如果不寫(xiě)uid=0,和gid=0的話(huà)就,在遠(yuǎn)程連接時(shí)就會(huì)出現(xiàn)以下的情況:
到這里了就要在F盤(pán)下新建一個(gè)rsyncdata的目錄,這個(gè)目錄就是指它里面的所有數(shù)據(jù)同步到linux的指定目錄去的,也就是windows下的rsyncd.conf配置文件的[rsyncdata]模塊對(duì)應(yīng)的文件,新建好之后我們還需要改一些配置:
- [rsyncdata] #指定模塊的頭信息
- path = /cygdrive/f/rsyncdata #需要同步數(shù)據(jù)的目錄,這個(gè)目錄指F盤(pán)下的rsyncdata目錄
- read only = true #是否為只讀
- list = no
- hosts allow = 10.17.1.200,10.17.1.88,10.17.1.60 #允許訪問(wèn)的主機(jī),多個(gè)用逗號(hào)分隔
- auth users = rsync #指定認(rèn)證的用戶(hù)名
- secrets file = /cygdrive/f/rsyncd.secrets #指定認(rèn)證用戶(hù)的密碼文件存放路徑,這個(gè)路徑指F盤(pán)下的rsyncd.secrets,一會(huì)需要新建這個(gè)文件
還需要修改一下rsyncdata這個(gè)目錄的一些相關(guān)屬性信息,右鍵這個(gè)文件選屬性:
輸入完SvcCWRSYNC這個(gè)用戶(hù)名后點(diǎn)“檢查名稱(chēng)”就可以匹配上了,再點(diǎn)確定就OK了。
#p#
最后再改一下這個(gè)文件對(duì)這個(gè)用戶(hù)的訪問(wèn)權(quán)限:
選中我的電腦--右鍵管理---服務(wù)和應(yīng)用--服務(wù),找到RsyncSever,雙擊--啟動(dòng),把這個(gè)服務(wù)器起動(dòng)起來(lái):
到這里應(yīng)該是說(shuō)windows下的就配置完了,但是要注意的是如果你的linux需要用telnet來(lái)連接到windows上來(lái)的話(huà)那windows上的防火墻記得要關(guān)閉,否則很可能連不上去,也可以在本上的測(cè)試一下,出現(xiàn)以下情況就說(shuō)明可以連接上去了,說(shuō)明windows服務(wù)可用了。
在cmd下輸入你windows的本機(jī)地址和rsync的監(jiān)聽(tīng)端口,它的默認(rèn)監(jiān)聽(tīng)的端口是873,回車(chē):
出現(xiàn)@RSYNCD:30.0這個(gè)就說(shuō)明可以連接上去了。
#p#
二、Rsync客戶(hù)端配置,這個(gè)就需要linux上做配置了,相關(guān)的配置見(jiàn)如下過(guò)程:
1、查看selinux機(jī)制,關(guān)閉selinux
- [root@node1 ~]# getenforce
- Disabled
2、安裝Rsync客戶(hù)端軟件
- [root@node1 ~]# yum install rsync xinetd
3、需要安裝這兩個(gè)軟件包就可以了,安裝好之后就要修改一點(diǎn)配置文件了:
- [root@node1 ~]# vi /etc/xinetd.d/rsync #編輯配置文件,設(shè)置開(kāi)機(jī)啟動(dòng)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 #啟動(dòng)xinetd這個(gè)服務(wù)
4、修改之后就遠(yuǎn)程連接測(cè)試一下,記得把windows的防火墻給關(guān)閉了哦,要不然很可能會(huì)連接不上的,或都在windows防火墻上開(kāi)放873這個(gè)端口
OK,說(shuō)明連接到windows上成功了,那接下來(lái)我們就創(chuàng)建一個(gè)與windows下同步的目錄了:
- [root@node1 ~]# mkdir pv /rsyncdata/data
為了同步數(shù)據(jù)時(shí)不用每次都不手動(dòng)輸入密碼,我們?cè)诳蛻?hù)端(linux下)也創(chuàng)建一個(gè)和服務(wù)端(windows)一樣的密碼文件(此文件路徑和密碼要與服務(wù)器端的一樣,客戶(hù)端不用寫(xiě)名字)
- [root@node1 ~]# vim /etc/rsyncd.secrets #只需要寫(xiě)上服務(wù)器端上的用戶(hù)密碼就可以了
- [root@node1 ~]# chmod 600 /etc/rsyncd.secrets #改一下權(quán)限
5、到這里我們就可以寫(xiě)命令來(lái)拉取windows服務(wù)器端上的數(shù)據(jù)了:
[root@node1 ~]# rsync -vazrtopqg --delete --password-file=/etc/rsyncd.secrets rsync@10.17.1.88::rsyncdata/* /rsyncdata/data/
傳輸成功,這里說(shuō)明一下這幾個(gè)參數(shù)表示什么:
- -v, --verbose #詳細(xì)模式輸出
- -q, --quiet #精簡(jiǎn)輸出模式
- -a, --archive #歸檔模式,表示以遞歸方式傳輸文件,并保持所有文件屬性,等于-rlptgoD
- -r, --recursive #對(duì)子目錄以遞歸模式處理
- -o, --owner #保持文件屬主信息
- -g, --group #保持文件屬組信息
- -t, --times #保持文件時(shí)間信息
- --delete #刪除那些DST中SRC沒(méi)有的文件
- --password-file=FILE #從FILE中得到密碼
6、為了一是每次有數(shù)據(jù)修改時(shí)都要手動(dòng)去同步一步,我們把這個(gè)命令寫(xiě)成一個(gè)腳本,再添加一個(gè)任務(wù)計(jì)劃,這個(gè)就可以實(shí)現(xiàn)自動(dòng)同步數(shù)據(jù)了;
- [root@node1 ~]# crontab -e
- * * * * * /bin/bash /root/rsync.sh &> /dev/null #我們?cè)O(shè)置每分鐘同步一次
OK了,到這里我們的整個(gè)的配置算是完成了,可能還做得不到的地方,希望朋友們發(fā)現(xiàn)了給我指出哦,在此先謝過(guò)了。