2011年12月4日 星期日

Redmine 利用批次檔排程備份 + 異地備份

Redmine 利用批次檔排程備份 + 異地備份

還不知道 Redmine是甚麼東西的朋友,可以閱讀一下我之前的文章,TFS 的替代方案:Redmine【Part1】安裝 Redmine + Subversion

在此真的強烈建議如果買不起TFS,又以VS.Net 為主要開發工具 的朋友,可以考慮用 Redmine + Subversion + AnkSvn 的替代方案,

基本的功能都有,而且又不用錢!真的是好物啊!

目前 Redmine + Subversion 已經變成我們團隊不可或缺的工具,這時候備份越顯重要,

由於安裝的是 Bitnami的版本,所以其實備份還蠻方便的。

一開始思考的方向是利用批次檔完成幾個動作。

  • 備份 Redmine的SQL資料檔
  • 備份 Redmine的附件資料 (預設 C:\Program Files\BitNami Redmine Stack\apps\redmine\files)
  • 備份 Subversion的版本控制檔案
  • 將所有檔案依照日期壓縮成需要密碼的 zip檔
  • 將備份檔 FTP至遠端伺服器

底下是bat檔的內容,幾行就解決了,加入排程,輕輕鬆鬆就完成每日異地備份囉!

01"font-size: 12px;">
02CALL C:\PROGRA~1\BITNAM~1\scripts\setenv.bat"
03set CURDATE=%date:~0,4%-%date:~5,2%-%date:~8,2%
04cd C:\backup
05if not exist %CURDATE% mkdir %CURDATE%
06
07rem --------- 開始備份 ------------------------
08rem 備份mysql
09mysqldump -u帳號 -p密碼 bitnami_redmine > C:\backup\%CURDATE%\redmine.sql
10
11rem 備份Subversion檔案
12svnadmin dump C:\Svn\版本控制區 > C:\backup\%CURDATE%\svn.dump
13
14rem 備份redmine的附件檔
15"C:\Program Files\7-Zip\7z.exe" a -t7z C:\backup\%CURDATE%\files.zip "C:\PROGRA~1\BITNAM~1\apps\redmine\files"
16
17rem 將整個檔案壓縮成有密碼的zip檔
18"C:\Program Files\7-Zip\7z.exe" a -t7z -p密碼 C:\backup\redmine%CURDATE%.zip "C:\backup\%CURDATE%\"
19
20rem 刪除備份的暫存檔
21rmdir /s/q C:\backup\%CURDATE%\
22
23rem --------------- 開始FTP ---------------------
24rem 產生參數檔
25echo user FTP帳號> ftpcmd.dat
26echo FTP密碼>> ftpcmd.dat
27echo prompt off>> ftpcmd.dat
28echo mput C:\backup\redmine%CURDATE%.zip>> ftpcmd.dat
29echo quit>> ftpcmd.dat
30
31rem 開始上傳
32ftp -n -s:ftpcmd.dat FTP伺服器位置
33del ftpcmd.dat
34
35exit
36
37

PS:我的主機是用五年前的NB架的 (Compaq M2231),RAM加到1.5G,效能還ok,但是真的蠻擔心硬碟毀損,

現在我們的團隊網站有本機備份跟遠端備份了,再也不用擔心囉!

另外備份時間其實蠻快的,要做到每小時備份也不會有太大問題,不過這當然看資料的大小而定囉。

沒有留言:

張貼留言