概述
Rsync是一款不錯的文件免費同步軟件,可以鏡像保存整個目錄樹和文件系統,同時保持原來文件的權限、時間、軟硬鏈接。第一次同步時 rsync 會復制全部內容,下次只傳輸修改過的文件部分。傳輸數據過程中可以實行壓縮及解壓縮操作,減少帶寬流量。支持scp、ssh及直接socket方式連接,支持匿名傳輸。支持linux,Window平臺。
rsync命令是一個遠程數據同步工具,可通過LAN/WAN快速同步多臺主機間的文件。rsync使用所謂的“rsync算法”來使本地和遠程兩個主機之間的文件達到同步,這個算法只傳送兩個文件的不同部分,而不是每次都整份傳送,因此速度相當快。
官網:http://rsync.samba.org/
Linux版下載:http://rsync.samba.org/download.html
windows版下載:https://www.itefix.no/i2/cwrsync-get 選(Free Edition 免費版)
cwRsync is a packaging of Rsync for Windows with a client GUI. You can use cwRsync for fast remote file backup and synchronization.
一、安裝配置 Rsync 服務端
1. 點擊服務端安裝程序進行安裝
在win服務器上安裝cwRsyncServer_4.0.5_Installer.exe,安裝的時候路徑不要去改,全部用默認路徑,如果用的是64位操作系統把默認路徑中的Program Files (x86)那個(x86)刪掉,安裝過程中rsync會自動建立一個叫做rsync的用戶名,并且提示你輸入這個用戶的密碼,這里很關鍵,這個密碼一定要是你系統用戶即adminstrator的密碼,如果怕出錯就不用管他直接點下一步,值得完成安裝,這時打開你的服務檢查下有沒有一個RsyncServer的服務,如果沒有的話就是那個用戶密碼的地方弄錯了,建議卸載重新安裝,如果有那就OK,最后檢查下你的防火墻是否打開873端口
檢查服務可以看到有rsync服務程序
2. 修改配置
安裝完成之后,進入程序安裝目錄根目錄,打開配置文件(如:C:Program FilesICWrsyncd.conf ),進入配置。
修改后如下:
以上Windows目錄的寫法,應該按照POSIX風格來寫,默認配置文件的寫要寫成cygdrive,如D:/data,要寫成/cygdrive/d/data。
說明:
strict modes = false 不驗證用戶密碼, pid = 0,uid = 0指定匿名訪問。 auth users : 指訪問data_backup的用戶名 secrets file : data_backup用戶名對應的密碼文件。
3.修改服務自啟動
二、安裝配置 Rsync 客戶端
1. 點擊客戶端安裝程序進行安裝
首先客戶端先安裝cwRsync_4.0.5_Install.exe,同樣安裝的時候路徑不要去改,全部用默認路徑,如果你用的是64位操作系統請把默認路徑中的Program Files (x86)那個(x86)刪掉,安裝完成后,新建一個txt文本文檔
2、測試服務器Rsync的連通性
在Rsync客戶端所在計算機telnet Rsync服務端所在計算的相應地址和端口
telnet rsync服務器IP 873
出現@RSYNCD: 30.0 等類似文字,則說明客戶端連接服務端正常。
3、測試同步
安裝完成后,新建一個文件:test.bat,腳本內容如下:
實現:rsync不間斷運行,時刻保持兩個文件夾的同步。
:a c: cd C:Program FilescwRsyncbin rsync --port=873 -vzrtopg --progress --timeout 600 --delete 192.168.43.218::test /cygdrive/e/syncbak ping 127.0.0.1 -n 60 >null goto a
參數說明:
:a #bat腳本常用標記 --port=873 # 端口 -vzrtopg --progress # 顯示同步過程詳細信息 --delete # 從客戶端目錄中刪除與服務端目錄中不同的數據,保證兩邊數據完全一致 --timeout #超時設定,在服務器忙或者網絡忙時rsync會出現同步到一半不動的情況,用了這個參數就可以設定在指定的時間內rsync沒有進行操作則取消 /cygdriver/e/syncbak # Window下備份目錄F:syncbak test # 服務端配置文件rsyncd.conf文件中定義的模塊名稱 192.168.43.218 # Rsync服務端IP地址 ping 127.0.0.1 -n 60 >null #停頓60s goto a #回到第一步操作
輸入以下命令就可以開始測試同步了,結果:往D:sync加文件立馬就同步到E:syncbak文件夾