rsync_Serverrsync服務端下載
rsync_Client rsync用戶端下載
會應用到rsync主要是因為公司項目的需要,關鍵是將SQLServer定時備份的資料庫定時備份到另外一台備份伺服器上去。還有其他的一些動作記錄,上傳的檔案之類也需要定時備份到備份伺服器上去。這個方案其實中間還涉及到一些其他的操作,也可以在這篇博文中說一下。一就是資料庫的定時作業,二就是windows計劃任務。我就按照操作的步驟逐步的來說一下吧。
MS SQLServer維護計劃
維護計劃(物件總管的管理項中)主要是讓SQLServer定時去執行一些任務。這些任務主要包括:
Ø 檢查資料的完整性
Ø 執行對索引的維護
Ø 更新資料庫的統計資訊
Ø 定時備份資料庫
維護計劃中比較重要的一項是計劃的制定,就是計劃操作是以什麼頻率,在具體哪個時間點去執行。建立維護計劃,跳過嚮導頁後出現如所示介面。
點擊中的更改,修改作業計劃的屬性,如。
制定好了作業計劃後,再往下便是選擇維護的任務。如所示
再往下就是選擇要備份的資料庫,以及備份檔案的儲存路徑等設定。如所示。
的捲軸下方還有一個選擇是否壓縮備份的選擇,若磁碟空間比較緊張還是建議選擇壓縮備份。而且針對資料的重要性選擇不同的備份方案,是全備,還是差異備份,是每天都備份還是每周,每月進行一次。
根據上述方法制定維護計劃後,在維護計劃列表中會出現新增的維護計劃,可以直接執行來測試計劃是否可以成功將Database Backup。也可以修改維護計劃,將時間改在與現在時間很相近的時間點,測試自動,定時執行作業是否成功。
Rsync簡介
Rsync是一款強大的增量傳輸的工具,可以應用於同一台機器上不同目錄的備份,也可以應用於不同機器之間的傳輸,備份。安裝,配置簡單。且為跨平台的工具,在linux,windows平台下都能應用。
Rsync佈建服務端安裝
Ø 安裝cwRsyncServer_4.1.0_Installer.zip 服務端軟體
Ø 安裝過程中會新建立一個svcCwrsync的windows登入帳戶,可以對其密碼進行修改也可以為預設值(預設值未知)
Ø 安裝過程可以一直“下一步”,中間過程基本不用做修改,全部採用預設值便可
Ø 安裝後,服務預設為手動啟動模式,到“管理工具/服務管理”裡,啟動“RsyncServer”服務,並修改“RsyncServer”為自動啟動模式
Ø 建立PATH的環境變數,變數名為PATH,變數值為rsync服務端安裝目錄下的bin目錄路徑
密碼檔案
Ø 在rsync服務端根目錄下,建立任意名的txt檔案,如test.txt。內容為username:password(自訂的使用者名稱與密碼)
Ø 然後將txt拓展名更為secrets
Ø 修改密碼檔案的許可權。運行cmd 輸入chmod 600 /test.secrets
Ø 上步操作若沒有任何提示表示設定成功
設定檔
Ø 設定檔在軟體安裝的根目錄下的rsyncd.conf檔案,用記事本開啟
Ø 配置端config檔案,設定檔代碼如下
uid = 0 #運行rsync守護進程的使用者 0為不限制
gid = 0 #運行rsync守護進程的組 0為不限制
use chroot = false
strict modes = false
hosts allow = * #允許進入的主機,*表示不限制。此處的值可以為單一ip,也可以是某個網段
log file = rsyncd.log #rsync啟動並執行記錄檔,這表示在根目錄下的rsyncd.log檔案
# Module definitions
# Remember cygwin naming conventions : c:\work becomes /cygwin/c/work
#
[weblog] #定義一個節點,或者說是入口
path = /cygdrive/c/weblog //傳過來的檔案所儲存的路徑(筆者也不懂linux所以這種表達方式。。。-_-!!)
read only = false //是否允許上傳,若為true則表示任何上傳的請求都會失敗,預設為true
transfer logging = yes
allow users = test #允許進入的使用者,使用者為在密碼檔案中輸入的username的內容。
secrets file = test.secrets #密碼檔案
hosts allow = * #允許進入的主機
hosts deny = * #禁止進入的主機
list file = true
[database]
path = /cygdrive/c/databackup
read only = false
transfer logging = yes
allow users = test
secrets file = est.secrets
hosts allow = *
hosts deny = *
list file = true
註:儲存資料的檔案目錄需要添加SVRSYNC使用者的完全控制許可權(這點是從網上找到的,筆者經過實驗似乎沒有加svrsync的許可權同樣可以傳輸檔案)。
Ø 服務端的安裝與配置就完成了
用戶端安裝
Ø 安裝cwRsync_4.1.0_Installer.zip用戶端軟體
Ø 建立PATH的環境變數(其實也可以不對環境變數進行修改,加上環境變數只是為了方便手動運行cmd)
密碼檔案
Ø 密碼檔案與服務端的要完全一致(網上也用說,用戶端的密碼檔案內容只能有密碼,其他的都不需要。筆者實驗表明,跟服務端的內容完全一致也沒有問題)
Ø 修改密碼檔案的許可權chmod 600 /test.secrets 許可權值只能為600
同步命令
Ø 若定義了PATH環境變數,直接輸入rsync不加參數,程式會將所有的參數全部列出來,以供參考。
Ø 若未義PATH環境變數,就先用CD 命令將路徑轉到rsync安裝目錄下的bin目錄路徑
Ø 上傳:rsync –avz /cygdrive/e/log –password-file=test.secrets username@ip address::weblog
Ø 上面這個命令是將原生e盤下的log檔案夾的所有內容包括log檔案夾本身,上傳到@後的ip address然後在服務端的設定檔中定義的weblog節點下儲存的path路徑下
Ø 還可以加上幾個常用的參數—remove-source-files同步完成後刪除源檔案
Ø --progress顯示同步的進度
Ø --delete讓目錄保持與伺服器上的完全一致
Ø 然後有一點,之前的簡介中說rsync是增量傳輸,這裡所謂增量就是覆蓋。
Ø 下載:下載的命令很簡單,把前面的路徑放到最後面就可以了。
Ø Rsync –avz --password-file=test.secrets test@ip address::weblog /cygdrive/e/log
Ø 上面的命令是將伺服器上定義的weblog節點下的path路徑的檔案下載到本地的e盤log目錄下
以上的步驟,rsync的用戶端也安裝設定完成,運行cmd,輸入命令便可以測試是否能同步檔案了。之下介紹一下用windows計劃任務來實現自動,定時,同步傳輸檔案。
Windows計劃任務
建立windows計劃任務(在用戶端設定)
Ø 建立任務(非基本任務),彈出如對話方塊
Ø 輸入名稱,如:weblogbackup,描述,如:智慧財產權平台動作記錄備份
Ø Tab標籤切換至“觸發器”,點擊建立。觸發器表示所建的任務將在什麼條件下啟動運行。如,表示每天的15:13:58這個時間執行任務。
Ø Tab標籤切換至操作,設定任務將要執行哪些操作。點擊建立,如。
的操作是運行rsync.exe程式,所以是“啟動程式”,路徑為rsync安裝目錄下的bin目錄下的rsync.exe的路徑。在參數欄輸入:-avz /cygdrive/e/weblog --password-file=test.secrets test@ip address::weblog。 /crgdrive/e/weblog是表示要將本機E盤下的WEBLOG檔案夾中的內容同步到ip address(如192.168.1.524)機器上。--password-file=test.secrets是事先已經設定好的密碼檔案。test@是密碼檔案中設定好的使用者名稱為test(密碼檔案的格式為username:password)。::weblog是該同步遵從rsync服務端設定檔中[weblog]節點的配置。
Ø 點擊確定完成windows計劃任務的設定。
結束語:以上是最近公司項目採用的一個同步,自動,定時備份檔案的方案。本篇文章說到了MS SQLServer的定時維護計劃,rsync的安裝配置,以及windows計劃任務。每一部分呢都沒有說得很細,許多地方也還沒有深入的研究。但是這一整套下來的備份方案是可行的。
所以在這裡記錄下來,與各位同行們分享之,算是拋磚引玉。各位大牛們肯定會有各種看法,意見與建議,希望能提出來,共同進步!