1. 程式人生 > >【Windows】Windows伺服器之間實現檔案實時同步?

【Windows】Windows伺服器之間實現檔案實時同步?

Windows伺服器之間實現檔案實時同步?

做公安專案,要實現內外網檔案同步,需要用到同步工具。有一個工具叫 “前置機”。
前置機的原理不是很清楚,應該是通過地址對映過去,然後跟公安內網某個內網IP伺服器一一對映。
前置機有以下幾個特點:
1、能從外往裡訪問,在裡面不能訪問外面(應該是伺服器被遮蔽了,可能是公安部規定的“一機多用”)
2、橋樑作用,外網 ===》前置機 ===》內網
3、檔案、資料只能主動請求拉取,而不能主動往外發送。

檔案同步工具(cwRsync)

安裝伺服器版cwRsyncServer

一直下一步:
直到完成安裝
開啟服務 =》 找到RsyncServer服務 =》設定成自動啟動 =》啟動
如果報錯,可能是使用者名稱密碼不正確,去系統使用者更改密碼,再次填入啟動。

配置伺服器環境:
安裝目錄應該在 C:\Program Files\ICW
找到 rsyncd.conf檔案,配置如下:

use chroot = false
strict modes = false
log file = rsyncd.log
pid file = rsyncd.pid
port = 888
uid = 0
gid = 0

# Module definitions
# Remember cygwin naming conventions : c:\work becomes /cygwin/c/work
#
[work]
path = /cygdrive/e/sync
read only = false
transfer logging = yes
hosts allow = *
hosts deny = 0.0.0.0/0

[n2w]
path = /cygdrive/e/sync_n2w
read only = false
transfer logging = yes
hosts allow = *
hosts deny = 0.0.0.0/0


重啟RsyncServer服務。

使用telnet 127.0.0.1 888測試一下是否通。

安裝客戶端版cwRsyncClient

客戶端一直下一步安裝,安裝目錄:
使用命令同步:
新建一個bat檔案,寫入:

@echo off
set RSYNC_HOME=C:\Program Files\cwRsync\bin
cd %RSYNC_HOME%
C:
rsync -vzrtopg --progress --delete /cygdrive/d/wwwroot/work/ rsync://192.168.2.21:888/work 
ping -n 5 127.0.0.1>nul
rsync -vzrtopg --progress --delete rsync://192.168.2.21:888/work /cygdrive/d/wwwroot/work
ping -n 10 127.0.0.1>nul
rsync -vzrtopg --progress --delete rsync://192.168.2.21:888/n2w /cygdrive/d/sync_n2w

命令不同,作用也不同。
1、#rsync -vzrtopg --progress --delete /cygdrive/d/wwwroot/work/ rsync://192.168.2.21:888/work
根據目錄結構,是將客戶端的檔案上傳到伺服器端
2、rsync -vzrtopg --progress --delete rsync://192.168.2.21:888/work /cygdrive/d/wwwroot/work
這裡是將伺服器端的檔案拉取到客戶端,且如果伺服器端沒有這個檔案,則刪除客戶端想對應的檔案