1. 程式人生 > >cwRsyncServer 從 windows server 2008 同步到 CentOS

cwRsyncServer 從 windows server 2008 同步到 CentOS

開發十年,就只剩下這套架構體系了! >>>   

20190401 從 windows server 2008 同步到 CentOS

環境構成:

伺服器端: 
	visualbox 虛擬機器
	Windows Server2008
	192.168.1.178
	
客戶端 : 
	visualbox 虛擬機器
	CentOS 6 ,CentOS 7
	192.168.1.184

1、下載

https://www.backupassist.com/rsync/

選擇 cwRsyncServer_4.1.0_Installer.zip

2、安裝 cwRsyncServer

1. 預先建立一個不同於 Administrator 的賬戶 ,例如: dhbm
	** 安裝過程中會自動建立一個賬號,並要求設定密碼,但是,我第一次被 360 擋住之後,後續死活不成功
	** 我第一次測試成功就是直接使用了Administrator,並使用Administrator密碼

2. 安裝過程基本上是一路回車,除了建立賬號之外,如下圖:
這是安裝程式自動建立的賬號,

我後續使用了以上系統賬號才正確的,如下圖

在這裡插入圖片描述 3. 安裝完成後的資訊如下: ** 建議不要使用她自動推薦的預設目錄,例如:我使用了 c:\rsync20190401 ** 如果一次不成功,下次再換個目錄測試,例如:c:\rsync20190401-1 在這裡插入圖片描述

  1. 如果第一次不成功,解除安裝的時候,要執行以下 3 個,最好是以下 1,2,3 的次序執行! 在這裡插入圖片描述

    1. 以管理員身份執行 cygrunserver! ** 必須管理員身份,否則,在本地服務裡面找不到 Rsyncserver 在這裡插入圖片描述
  2. 找到並設定 Rsyncserver 自動執行 在這裡插入圖片描述

3、修改配置檔案


** 安裝的時候已經自動配置好了,以下 hosts allow 可以在實際執行的時候,指定客戶端 ip

use chroot = false
strict modes = false
hosts allow = *
log file = rsyncd.log

# add by wzh 20190401
port = 873 #預設埠873 
uid = 0 #不指定uid,不加這一行將無法使用任何賬戶 
gid = 0 #不指定gid 
max connections = 100 #最大連線數100

# Module definitions
# Remember cygwin naming conventions : c:\work becomes /cygwin/c/work
#
[test]
path = /cygdrive/c/work
read only = false
transfer logging = yes
# add by wzh 20190401
lock file = rsyncd.lock

** 以上配置了一個 測試模組 test ,後續可以照著 test 模組建立其他需要同步的模組

** 按照以上配置,先在 c:盤建立好一個work目錄,並 copy 幾個檔案進去,用於測試

到這裡, windows 服務端就算配置好了!如果中途有修改配置,青重新啟動 Rsyncserver 服務

4、 linux 端安裝 rsync

1. sudo yum -y install rsync

2. su
	輸入密碼之後,以 root 執行
3. 設定密碼檔案
	假設剛才windows 上設定了使用者 dhbm ,密碼:XXXXXXXXXX123
	實際請換成自己的密碼
	
	sudo echo "XXXXXXXXXX123" > /root/rsync_user.pwd
	sudo chmod 600 /root/rsync_user.pwd

4. 建立一個對應伺服器上剛才的 test 模組的 work 目錄 (名字不一定也要叫work)
	mkdir /home/dhbm/work
	
5. 測試 rsync 連線
rsync -avz --progress --delete --password-file=/root/rsync_user.pwd [email protected]::test /home/dhbm/work	
返回結果如下:
	[email protected]::test /home/dhbm
	receiving incremental file list
	deleting .ssh/authorized_keys
	deleting .ssh/
	deleting .viminfo
	deleting .bashrc
	deleting .bash_profile
	deleting .bash_logout
	deleting .bash_history
	./
	......


6. 錯誤處理 [@ERROR](https://my.oschina.net/u/102809): failed to open lock file
	rsync error: error starting client-server protocol (code 5) at main.c(1648) [Receiver=3.1.2]

參考 https://www.cnblogs.com/djane/articles/4618235.html

加上 lock file = rsyncd.lock

7. 錯誤處理  [@ERROR](https://my.oschina.net/u/102809): Unknown module 'svndata'

rsync error: error starting client-server protocol (code 5) at main.c(1648) [Receiver=3.1.2]

抄寫別人的測試命令時,以上模組名字沒有修改,記得改成自己在 windows 上設定的模組名字 test

8.錯誤處理 cwRsyncServer執行後服務介面找不到服務 ** 必須以管理員身份執行 ** 可以按照前面提到的 uninstall 1,2,3 解除安裝後,重新來過 ** 可以按照前面提到的,在安裝到另一個目錄試試

5、建立一個指令碼命令自動同步

  1. 建立 sh 檔案 touch /root/rsync_data.sh chmod +x /root/rsync_data.sh vim /root/rsync_data.sh 內容如下:

     #!/bin/bash
    
     USER="dhbm"
     PASS="/root/rsync_user.pwd"
     SOURCE="192.168.0.189::test"
     DEST="/home/dhbm/work"
     FILE="/root/rsync.log"
     CMD="/usr/bin/rsync"
    
     while true
     do
         $CMD -avz --bwlimit=512 --progress --delete --password-file=$PASS $USER@$SOURCE $DEST
         chown -R dhbm.dhbm /home/dhbm/work
    
         TIME="$(date "+%F %H:%M:%S")"
         if [ $? -eq 0 ];then
             echo "$TIME ---> rsync success" >> $FILE
         else
             echo "$TIME ---> rsync failed" >> $FILE
         fi
    
         sleep 20
     done
    
  2. 執行 指令碼 cd /root ./rsync_data.sh

  3. 再開啟一個 Terminal ,看看是否已經同步了 windows 上的 c:/work 的檔案

  4. 在 widnows 端,往 c:/work 拖入幾個新檔案,同時觀察 Centos 這邊是否立即同步過來

  5. 確認服務是否已經執行 ps -ef |grep rsync root 3846 3833 0 17:46 tty1 00:00:00 /bin/bash ./rsync_data.sh root 3847 3846 0 17:46 tty1 00:00:01 /usr/bin/rsync -avz --bwlimit=512 --progress --delete --password-file=/root/rsync_user.pwd [email protected]::upload /home/dhbm/upload root 3848 3847 4 17:46 tty1 00:11:31 /usr/bin/rsync -avz --bwlimit=512 --progress --delete --password-file=/root/rsync_user.pwd [email protected]::upload /home/dhbm/upload dhbm 4010 3990 0 22:31 pts/0 00:00:00 grep --color=auto rsync

6、Centos 上設定 rsy