概述
由于業務需要,需在ftp服務器創建多一個目錄,用于給另外一個新系統做測試用。
簡單畫圖如下:
目前架構:

計劃方案:

下面簡單記錄下方案實現過程。
一、搭建rsync服務
1、linux搭建rsync
1.1、編譯安裝
wget https://download.samba.org/pub/rsync/src/rsync-3.1.2.tar.gz tar -xvf rsync-3.1.2.tar.gz cd rsync-3.1.2 ./configure --prefix=/usr/local/rsync && make && make install

1.2、修改配置
#vim /usr/local/rsync/rsyncd.conf ================================================= #全局參數 uid = root gid = root use chroot = no max connections = 5 strict modes = yes port = 8888 pid file = /var/run/rsyncd.pid lock file = /var/run/rsync.lock log file = /var/log/rsyncd.log ? #模塊 [inbound] path = /home/ftptmslive/inbound ignore errors read only = false list = no #hosts allow = 0.0.0.0 auth users = rsync secrets file =/usr/local/rsync/rsyncd.secrets ? #模塊 [scmp] path = /home/ftptmslive/scmp ignore errors read only = false list = no #hosts allow = 0.0.0.0 auth users = rsync secrets file =/usr/local/rsync/rsyncd.secrets ================================================= ? #vim /usr/local/rsync/rsyncd.secrets ================================================= rsync:xxxxxx ================================================= #chmod 600 /usr/local/rsync/rsyncd.secrets
1.3、啟動rsync
/usr/bin/rsync --daemon --config=/usr/local/rsync/rsyncd.conf
2、windows搭建rsync
2.1. 點擊服務端安裝程序進行安裝
在win服務器上安裝cwRsyncServer_4.0.5_Installer.exe,安裝的時候路徑不要去改,全部用默認路徑,如果用的是64位操作系統把默認路徑中的Program Files (x86)那個(x86)刪掉,安裝過程中rsync會自動建立一個叫做rsync的用戶名,并且提示你輸入這個用戶的密碼,這里很關鍵,這個密碼一定要是你系統用戶即adminstrator的密碼,如果怕出錯就不用管他直接點下一步,值得完成安裝,這時打開你的服務檢查下有沒有一個RsyncServer的服務,如果沒有的話就是那個用戶密碼的地方弄錯了,建議卸載重新安裝,如果有那就OK,最后檢查下你的防火墻是否打開873端口





檢查服務可以看到有rsync服務程序

2.2. 修改配置
安裝完成之后,進入程序安裝目錄根目錄,打開配置文件(如:C:Program Files(x86)ICWrsyncd.conf ),進入配置。
修改后如下:

以上Windows目錄的寫法,應該按照POSIX風格來寫,默認配置文件的寫要寫成cygdrive,如D:/data,要寫成/cygdrive/d/data。
說明:
strict modes = false 不驗證用戶密碼, pid = 0,uid = 0指定匿名訪問。 auth users : 指訪問data_backup的用戶名 secrets file : data_backup用戶名對應的密碼文件。
2.3.修改服務自啟動
控制面板--管理工具--服務

二、rsync增量實時同步腳本
:a c: cd C:Program FilescwRsyncbin echo ##############開始下載###################### rsync --port=8888 -vzrtopg --progress --timeout 300 源服務器::scmp/ /cygdrive/d/rsync/scmp/ftp/ echo ###################################開始上傳################################################# rsync --port=8888 -vzrtopg --progress --timeout 300 --password-file=/cygdrive/d/rsync/rsyncd.txt /cygdrive/d/rsync/scmp/ftp/* 目的服務器::scmp/ ping 127.0.0.1 -n 60 >null pause goto a
--delete # 從客戶端目錄中刪除與服務端目錄中不同的數據,保證兩邊數據完全一致,調試時慎用
--timeout #超時設定,在服務器忙或者網絡忙時rsync會出現同步到一半不動的情況,用了這個參數就可以設定在指定的時間內rsync沒有進行操作則取消
--pause #暫停,調試時使用
