服務器端:html
visualbox 虛擬機 Windows Server2008 192.168.1.178
客戶端 :linux
visualbox 虛擬機 CentOS 6 ( CentOS 7 也是同樣的) 192.168.1.184
目標:vim
將 Windows Server2008 傷的文件服務器目錄自動同步到 CentOS 服務器上去
https://www.backupassist.com/rsync/ 選擇 cwRsyncServer_4.1.0_Installer.zipwindows
預先創建一個不一樣於 Administrator 的帳戶 ,例如: dhbm ** 安裝過程當中會自動建立一個帳號,並要求設置密碼,可是,我第一次被 360 擋住以後,後續死活不成功 ** 我第一次測試成功就是直接使用了Administrator,並使用Administrator密碼bash
安裝過程基本上是一路回車,除了創建帳號以外,以下圖: 這是安裝程序自動創建的帳號, 服務器
我後續使用了以上系統帳號才正確的,以下圖ssh
3. 安裝完成後的信息以下: ** 建議不要使用她自動推薦的缺省目錄,例如:我使用了 c:\rsync20190401 ** 若是一次不成功,下次再換個目錄測試,例如:c:\rsync20190401-1
svn
若是第一次不成功,卸載的時候,要運行如下 3 個,最好是如下 1,2,3 的次序執行! 測試
找到並設置 Rsyncserver 自動運行 ui
** 安裝的時候已經自動配置好了,如下 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 幾個文件進去,用於測試
sudo yum -y install rsync
su 輸入密碼以後,以 root 運行
設置密碼文件 假設剛纔windows 上設置了用戶 dhbm ,密碼:XXXXXXXXXX123 實際請換成本身的密碼
sudo echo "XXXXXXXXXX123" > /root/rsync_user.pwd sudo chmod 600 /root/rsync_user.pwd
創建一個對應服務器上剛纔的 test 模塊的 work 目錄 (名字不必定也要叫work) mkdir /home/dhbm/work
測試 rsync 鏈接
rsync -avz --progress --delete --password-file=/root/rsync_user.pwd dhbm@192.168.1.178::test /home/dhbm/work 返回結果以下: dhbm@192.168.1.178::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 ./ ......
錯誤處理 @ERROR: 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
錯誤處理 @ERROR: 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 卸載後,從新來過 ** 能夠按照前面提到的,在安裝到另外一個目錄試試
建立 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 dhbm@192.168.0.166::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 dhbm@192.168.0.166::upload /home/dhbm/upload dhbm 4010 3990 0 22:31 pts/0 00:00:00 grep --color=auto rsync
六、Centos 上設置 rsync 服務自動運行