Redmine
command
BITNAMI

個人用Local Redmineのバックアップコマンド

Bitnamiでほいほいとローカルインストールしたredmineのバックアップ方法です。

スモールスタートしたものの、バックアップなしは怖い、に対処する程度です。

元となるbatファイル

redmineフォルダにあるuse_redmine.batファイルを複製して改造します。(私はDドライブにインスコ)

@echo off
CALL "D:\Bitnami\REDMIN~1.3-1\scripts\setenv.bat"
D:
cd "D:\Bitnami\redmine-3.4.3-1"
START "Bitnami Redmine Stack Environment" cmd

mysqlをコピーする

Redmine JP:データのバックアップ方法

mysqldump -u MySQLユーザー名 -pMySQLパスワード Redmineデータベース名 > データ出力先ファイル名
  • テーブルロックを掛けずにバックアップ

http://blog.seeds-std.co.jp/entry/3405.html

バックアップ中に更新が掛かって整合性が壊れないように、innodbで使える--single-transactionオプションを指定します。
現行bitnamiではすべてのテーブルがinnodbになっていることは確認しました。
MySQLサーバのストレージエンジン確認方法

{インスコフォルダ}\apps\redmine\htdocs\config\database.yml
production:
  adapter: mysql2
  database: bitnami_redmine
  host: 127.0.0.1
  username: bitnami     ← ユーザ名
  password: XXXXXXXX    ← パスワード
  encoding: utf8

添付ファイルの保管フォルダを階層ごと保存する

robocopyを使って差分コピーをする方法

  • 高度なコピーを実現してくれるrobocopyコマンド
  • オプション
    • /MIR ブランクフォルダも含めて階層ごとミラーリングコピー(コピー元に存在しないファイルはコピー先から削除)
    • /XA:SH 指定した属性のファイルを対象から除外(S:システム、H:隠し)
    • /XO 古いファイルを対象から除外

最終物

@echo off
CALL "D:\Bitnami\REDMIN~1.3-1\scripts\setenv.bat"
D:
cd "D:\Bitnami\redmine-3.4.3-1"
mysqldump -x -u bitnami -pXXXXXXXXX --single-transaction bitnami_redmine > d:\redmine_backup\mysqldump
Robocopy .\apps\redmine\htdocs\files\ d:\redmine_backup\files\ /MIR /XA:SH /XO
pause
exit