2009年1月5日

Redmine バックアップする

イマイチなので修正予定。


Redmineをバージョンアップする前にバックアップを取っておこうと思い、バックアップスクリプトを作成。

バックアップするのは以下
- Redmineのデータ(MySQL)
- 添付ファイル(filesフォルダ)
- Subversion

以下スクリプトを適当なフォルダに保存して、バックアップフォルダと作業用の専用フォルダを用意して実行する。


rem redmineバックアップスクリプト
rem
rem 使い方
rem ~~~~~~
rem 1.バックアップディレクトリを作成し、以下フォルダを掘る
rem BKUP_DIR
rem /TODAY
rem /YESTERDAY
rem 2.環境変数を設定する
rem 3.正常動作を確認した後、定期実行する
rem

pushd %~dp0

set HOST=localhost
set USERNAME=root
set PASS=password
set DBNAME=redmine

set REDMINE_DIR=F:\www\redmine-0.7.3
set MySQL_DIR=C:\Program Files\MySQL\MySQL Server 5.0\bin
set BKUP_DIR=F:\www\redmine-scripts\bkup
set WORK_DIR=F:\www\redmine-scripts\work
set SVN_DIR=C:\usr\svn-repo

set PATH=%PATH%;%MySQL_DIR%


pushd %BKUP_DIR%

rem Copy today yesterday
xcopy /s /q /y TODAY YESTERDAY

popd


pushd %WORK_DIR%

rem Dump MySQL descriptions
mysqldump -h %HOST% -u %USERNAME% -p%PASS% %DBNAME% -d -r redmine_dmpd.sql

rem Dump MySQL data
mysqldump -h %HOST% -u %USERNAME% -p%PASS% %DBNAME% -t -r redmine_dmp.sql
zip redmine_dmp.sql.zip redmine_dmp.sql
del redmine_dmp.sql

rem Zip redmine files
pushd %REDMINE_DIR%\files
zip -r ..\redmine_files.zip *
popd
move %REDMINE_DIR%\redmine_files.zip .

rem Dump subversion
for /d %%i in (%SVN_DIR%\*) do svnadmin verify %%i if not "%ERRORLEVEL%" == 0 pause
for /d %%i in (%SVN_DIR%\*) do svnadmin dump %%i > repo-%%~ni.dmp
for /d %%i in (%SVN_DIR%\*) do zip repo-%%~ni.dmp.zip repo-%%~ni.dmp
for /d %%i in (%SVN_DIR%\*) do del repo-%%~ni.dmp


popd

rem Transfer work today
xcopy /s /q /y %WORK_DIR% %BKUP_DIR%\TODAY


リストアテストしていないけど、大丈夫かな?