Redmine已經是我們團隊不可或缺的工具,所以備份越顯重要,在此分享如何以批次檔來完成備份redmine跟Subversion的資料以及FTP異地備份
還不知道 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檔的內容,幾行就解決了,加入排程,輕輕鬆鬆就完成每日異地備份囉!
CALL C:\PROGRA~1\BITNAM~1\scripts\setenv.bat"
set CURDATE=%date:~0,4%-%date:~5,2%-%date:~8,2%
cd C:\backup
if not exist %CURDATE% mkdir %CURDATE%
rem --------- 開始備份 ------------------------
rem 備份mysql
mysqldump -u帳號 -p密碼 bitnami_redmine > C:\backup\%CURDATE%\redmine.sql
rem 備份Subversion檔案
svnadmin dump C:\Svn\版本控制區 > C:\backup\%CURDATE%\svn.dump
rem 備份redmine的附件檔
"C:\Program Files\7-Zip\7z.exe" a -t7z C:\backup\%CURDATE%\files.zip "C:\PROGRA~1\BITNAM~1\apps\redmine\files"
rem 將整個檔案壓縮成有密碼的zip檔
"C:\Program Files\7-Zip\7z.exe" a -t7z -p密碼 C:\backup\redmine%CURDATE%.zip "C:\backup\%CURDATE%\"
rem 刪除備份的暫存檔
rmdir /s/q C:\backup\%CURDATE%\
rem --------------- 開始FTP ---------------------
rem 產生參數檔
echo user FTP帳號> ftpcmd.dat
echo FTP密碼>> ftpcmd.dat
echo prompt off>> ftpcmd.dat
echo mput C:\backup\redmine%CURDATE%.zip>> ftpcmd.dat
echo quit>> ftpcmd.dat
rem 開始上傳
ftp -n -s:ftpcmd.dat FTP伺服器位置
del ftpcmd.dat
exit
PS:我的主機是用五年前的NB架的 (Compaq M2231),RAM加到1.5G,效能還ok,但是真的蠻擔心硬碟毀損,
現在我們的團隊網站有本機備份跟遠端備份了,再也不用擔心囉!
另外備份時間其實蠻快的,要做到每小時備份也不會有太大問題,不過這當然看資料的大小而定囉。
end