目的:服務器
在平常生活中,咱們有時候會遇到這樣相似的問題測試
---須要把一臺服務器上的某個重要的文件進行備份(拷貝另外的服務器上)編碼
---須要同步系統上的配置文件到其餘系統spa
利用此cwRsync軟件能夠解決3d
環境:日誌
服務端和客戶端server
同步形式: 【服務端 -----> 客戶端】blog
------------------------------------------------------------------------------同步
本次測試:服務端上的部分文件定時同步到客戶端指定位置test
本次用到的軟件版本
服務端IP:172.168.10.111
客戶端IP:172.168.10.222
同步172.168.10.111的FTPB文件夾和副本文件夾文件到172.168.10.222的backup文件夾下
------------------------------------------------------------------------------
安裝軟件:
在172.168.10.111上雙擊server軟件
雙擊下一步到下圖
默認是SvcCWRSYNC用戶,軟件會自動建立這個用戶(密碼爲自動生成的密碼)
點擊Install安裝完成
客戶端直接點擊下一步直到安裝完成便可
安裝完成後,首先須要在服務端對配置文件進行修改
默認安裝路徑:C:\Program Files (x86)\ICW
以上路徑下有rsyncd.conf配置文件,對其進行修改
配置文件中[test]表明模塊名,客戶端同步命令中須要調用這個模塊
注:注意path的路徑書寫
好比你須要備份E:\test下的內容,那你path就須要寫成 /cygdrive/e/test這種形式
配置文件修改完畢後開啓服務
啓動以上服務便可
------------------------------------------------------------------------------
客戶端配置
默認安裝路徑:C:\Program Files (x86)\cwRsync
編寫.bat文件
總共三行:
---------
c:
cd C:\Program Files (x86)\cwRsync\bin
rsync -av rsync://172.168.10.111:8173/test /cygdrive/c/backup
---------
其中最後一行爲同步語句
以上語句會同步test下全部的內容到客戶端的backup目錄中
本次咱們須要同步的是test目錄下的特定的文件夾(FTPB和副本)
這時咱們須要用到exclude和include參數
命令修改成
rsync -av --include-from=C:/include.txt --exclude=/* rsync://172.168.10.111:8173/test /cygdrive/c/backup
其中--include-from參數調用了include.txt文件
看看include.txt文件中的內容
注:在個人測試中,當你指定的文件或文件夾名爲中文時,傳輸會失敗
咱們用上述命令測試,雙擊咱們編寫的.bat文件
文件內容:
開始傳輸
傳輸完畢,查看backup目錄下的內容
發現中文的目錄沒有傳輸過來
這實際上是因爲亂碼形成的
咱們從日誌文件中能夠看到傳輸過去的文件名
傳輸過程當中出現了亂碼的問題,則在客戶端的include文件中沒法進行匹配,也就沒法順利傳輸
我嘗試了多種方法都沒有順利解決這個傳輸指定中文的問題
最終我採用了一個非正規操做來完成個人需求
大概思路就是:既然傳輸過程當中中文變成了亂碼,我能夠在include文件中寫入這個完成的亂碼,利用亂碼去匹配。
獲取相應中文亂碼:
在test/q目錄下手動建立一個副本.txt
而後再客戶端include.txt文件中填入q這個目錄
而後手動執行傳輸(這時候會傳輸q目錄包括目錄下的內容)
在日誌中能夠看到副本變成了鍓湰亂碼
複製這串亂碼到include.txt文件中
再次打開
發現他自動已經編碼成簡體中文(保存時的編碼問題)
注:當你須要把FTPB(英文)和副本(中文)同時傳輸時,須要把中文亂碼最後複製(涉及到了文本保存時的編碼類型)
這樣在按Ctrl+S保存
格式纔會正確
最後測試:
運行.bat文件
發現中文已經被傳輸,在看backup下的內容
發現正是咱們想要的結果
------------------------------------------------------------------------------
接下來設置定時任務
右鍵運行任務進行測試
測試結果正常!
至此,整個定時同步傳輸文件的需求就完成了!
注:上述過程當中,那部分的編碼問題致使沒法傳輸中文沒有找到好的辦法,若是有更好的辦法請留言告知!