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/
2、安裝 cwRsyncServer
1. 預先建立一個不同於 Administrator 的賬戶 ,例如: dhbm
** 安裝過程中會自動建立一個賬號,並要求設定密碼,但是,我第一次被 360 擋住之後,後續死活不成功
** 我第一次測試成功就是直接使用了Administrator,並使用Administrator密碼
2. 安裝過程基本上是一路回車,除了建立賬號之外,如下圖:
這是安裝程式自動建立的賬號,
我後續使用了以上系統賬號才正確的,如下圖
3. 安裝完成後的資訊如下: ** 建議不要使用她自動推薦的預設目錄,例如:我使用了 c:\rsync20190401 ** 如果一次不成功,下次再換個目錄測試,例如:c:\rsync20190401-1
-
如果第一次不成功,解除安裝的時候,要執行以下 3 個,最好是以下 1,2,3 的次序執行!
- 以管理員身份執行 cygrunserver! ** 必須管理員身份,否則,在本地服務裡面找不到 Rsyncserver
-
找到並設定 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、建立一個指令碼命令自動同步
-
建立 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
-
執行 指令碼 cd /root ./rsync_data.sh
-
再開啟一個 Terminal ,看看是否已經同步了 windows 上的 c:/work 的檔案
-
在 widnows 端,往 c:/work 拖入幾個新檔案,同時觀察 Centos 這邊是否立即同步過來
-
確認服務是否已經執行 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