windows文件通過rsync自動同步到Centos或者Truenas

最近有這樣的一個需求,就是我ERP備份的數據庫,我想自動同步到我的TrueNAS服務器上。但我的ERP服務器是Windows。

怎麼能用rsync功能呢?

rsync估計大家都不會陌生。他是一款Linux非常好的同步軟件。

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Rsync是一款不錯的文件免費同步軟件,可以鏡像保存整個目錄樹和文件系統,同時保持原來文件的權限、時間、軟硬鏈接。第一次同步時 rsync 會複製全部內容,下次只傳輸修改過的文件部分。傳輸數據過程中可以實行壓縮及解壓縮操作,減少帶寬流量。支持scp、ssh及直接socket方式連接,支持匿名傳輸。支持Linux,Window平臺。寫本文的時候,window版最新版爲4.1.0版

官網:http://rsync.samba.org/

Linux版下載:http://rsync.samba.org/download.html

Windows版下載:

客戶端:cwRsync_4.1.0_Installer.zip 服務器文件同步軟件客戶端

服務端:cwRsyncServer_4.1.0_Installer.zip服務器文件同步軟件 服務器端

現在官方開始了收費版本,建議從腳本之家下載免費版本

然後我們這裏呢先講一下rsync傳輸中的一些參數。

大家可以根據需要來酌情添加參數。

參數說明

-a 參數,相當於-rlptgoD,

-r 是遞歸

-l 是鏈接文件,意思是拷貝鏈接文件;

-p 表示保持文件原有權限;

-t 保持文件原有時間;

-g 保持文件原有用戶組;

-o 保持文件原有屬主;

-D 相當於塊設備文件;

-z 傳輸時壓縮;

-P 傳輸進度;

-v verbose,詳細模式輸出;

-u是隻同步已經更新的文件,避免沒有更新的文件被重複更新一次,不過要注意兩者機器時鐘的同步;

--progress 顯示備份過程;

--delete 刪除那些DST中SRC沒有的文件,用作同步文件用;

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

說了一大堆,現在開始言歸正傳了。

我首先是在我的Windows上面安裝了rsync服務器端。

安裝完成後的效果就是這樣。

 

 

我們主要是要修改rsyncd.conf的配置文件。

我的配置如下:

uid=0
gid=0
use chroot=false
strict modes=false
hosts allow=*
max connections=5
lock file=rsyncd.log 
port=873

# Module definitions
[backup]
path=/cygdrive/D/ERPdatabak
auth users=Administrator
secrets file=/cygdrive/d/Setting/Rsync/rsync_db.ps
read only=no
list=no
transfer logging=yes

 這裏面有些需要說明。[backup] 代表同步模塊。你可以添加好幾個模塊,同時同步都可以。

然後有一點要注意,因爲我的是Windows,所以在Windows路徑的時候要注意,比如d:\setting .這是Windows寫法,在這個配置文件應該寫成,/cygdrive/d/setting/ 要這樣寫。好像是POSIX風格來寫。

然後就是你要備份的文件夾,需要給他相對應的權限。我都是用的administrator的權限。

 

然後就去把他的服務開起來,

 

 

 

服務開啓之後,然後登入賬戶,我也改成了administrator 超級管理員了。這個你們可以隨意發揮。

最後自測一下rsync服務器是否聯通。

 

 顯示30.0 .就代表服務正常。

然後我們要根據我們剛剛rsyncd.conf的配置,來配置訪問的密碼文件和權限。

 

 密碼我們也配置好了。

然後在Centos上也創建一個密碼文件,並賦予600權限。

 

 

 

 

 

 可以看到已經是600權限了。如果不是,就是chmod 600 設置一下。

把我Centos上的/tmp/臨時目錄推送到我的Windows看下。

 

 

 

 

 

 

成功了,過來了。

rsync -avz /tmp/ [email protected]::backup --password-file=/root/backup_passwd

目錄放在前面就是推送過去,放在後面,則是把服務器上的目錄拉取過來。

我們的目標是在truenas上面實現,把Windows的數據庫全部推送到truenas上面來。

這個是我現有NAS的版本。

 

 同樣的在NAS的shell上面要建立一個密碼文件。

 

 

 

 600權限。

 

 

測試是成功的狀態。

這次我們是把服務器端的數據拉取過來。

 

 

rsync -avz --progress --port=873 --password-file=/root/backup_passwd [email protected]::backup /mnt/DATA/DATABackup/rsync_bak

 

 rsync -apvz --progress --delete --port=873 --password-file=/root/backup_passwd [email protected]::backup /mnt/DATA/DATABackup/rsync_bak   #這條命令保留了文件的屬性,且把源目錄沒有的文件,在目標文件上刪除了。大家各自根據自己所需吧

那很成功了。

我們直接添加一個計劃任務就可以了。

 

 

我設置的是每天晚上12點開始同步。

這樣我們的需求就達到了。

 

 

數據已經全部過來了。

 

 

還是很成功的。

實驗也比較簡單,耗時一天就完成了。

我也是參考了網絡上面的兩個案例。

鏈接我發出來供大家參考。

https://wenku.baidu.com/view/36bdb2e3b84cf7ec4afe04a1b0717fd5360cb2e7?bfetype=new

https://www.jb51.net/article/59034.htm

https://blog.csdn.net/sinat_27747695/article/details/114098005

https://blog.csdn.net/cyb0408/article/details/113093321

看完這些,應該就會有一些思路了。

我剛開始不成功,以爲是用戶權限和對NAS界面的不熟悉。

但是後面自己都慢慢克服了。

每個人的需求不一樣,所以大家可能要根據自己的實際情況來調試。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章