Windows10にBitnami Redmineをインストールしたのは良いのだけど、このまま運用していった時にもしもデータが壊れたり、ハードディスクが物理的に壊れたりした場合にデータを全部失ってしまうのが怖い。。。
なので、バックアップを取得しようと思います。
毎回手動でバックアップを取ってもいいのだけれど、それだと絶対忘れる時あるよね。
ということで、定期的に自動でバックアップを取得していきたいと思います!
手順
1. productionのデータベース情報を確認する
ファイルの場所(インストールフォルダ内)
apps\redmine\htdocs\config\database.yml
内容
production: adapter: mysql2 database: bitnami_redmine host: 127.0.0.1 username: bitnami password: ********** # Use "utf8" instead of "utfmb4" for MySQL prior to 5.7.7 encoding: utf8mb4 port: 3307
2. バッチファイルの作成
一連のバックアップ処理をコマンドを使ったバッチファイルとして作成します。
今回は、内容を下記のように作成しました。(各ディレクトリ、ポート番号等は適宜読み替えてください)
下記内容のファイルを「bitnami_redmine_autobackup.bat」と名前を付けて保存します。
(拡張子が「.bat」であれば、ファイル名は何でもいいです)
@echo off rem echoの文字化け対策(UTF-8 65001) chcp 65001 rem バッチログディレクトリ set DIR_BATLOG=D:\redmine_backup_log set FILE_BATLOG=batch.log rem Redmineインストールディレクトリ set DIR_REDMINE=D:\Bitnami\redmine-5.0.0-0 rem バックアップ先ディレクトリ set DIR_BACKUP=G:\redmine_backup rem データベースユーザー名 set DB_USER=bitnami rem データベースパスワード set DB_PASS=********** rem データベースホスト set DB_HOST=127.0.0.1 rem データベースポート番号 set DB_PORT=3307 rem ログディレクトリが無ければ作成 if not exist %DIR_BATLOG% ( mkdir %DIR_BATLOG% if not exist %DIR_BATLOG% ( exit ) ) rem ログファイルが無ければ作成 if not exist %DIR_BATLOG%\%FILE_BATLOG% ( copy nul %DIR_BATLOG%\%FILE_BATLOG% if not exist %DIR_BATLOG%\%FILE_BATLOG% ( exit ) ) rem バックアップ処理開始メッセージを記録する echo %date:~0,4%-%date:~5,2%-%date:~8,2% %time:~0,2%:%time:~3,2%:%time:~6,2% [info] バックアップ処理を開始します >> %DIR_BATLOG%\%FILE_BATLOG% rem バックアップ先に本日日付のディレクトリを作成 set DATE_STR=%date:~0,4%%date:~5,2%%date:~8,2% mkdir %DIR_BACKUP%\%DATE_STR% mkdir %DIR_BACKUP%\%DATE_STR%\files mkdir %DIR_BACKUP%\%DATE_STR%\plugins rem バックアップ先ディレクトリが存在していなければ終了 if not exist %DIR_BACKUP%\%DATE_STR% ( echo %date:~0,4%-%date:~5,2%-%date:~8,2% %time:~0,2%:%time:~3,2%:%time:~6,2% [error] バックアップ先のディレクトリ作成に失敗しました >> %DIR_BATLOG%\%FILE_BATLOG% echo %date:~0,4%-%date:~5,2%-%date:~8,2% %time:~0,2%:%time:~3,2%:%time:~6,2% [info] バックアップ処理を終了します >> %DIR_BATLOG%\%FILE_BATLOG% exit ) rem データベースが起動していなければ終了 netstat -an | findstr "%DB_HOST%:%DB_PORT%" | findstr "LISTENING" if %errorlevel% == 1 ( echo %date:~0,4%-%date:~5,2%-%date:~8,2% %time:~0,2%:%time:~3,2%:%time:~6,2% [error] データベースが起動していないため失敗しました >> %DIR_BATLOG%\%FILE_BATLOG% echo %date:~0,4%-%date:~5,2%-%date:~8,2% %time:~0,2%:%time:~3,2%:%time:~6,2% [info] バックアップ処理を終了します >> %DIR_BATLOG%\%FILE_BATLOG% exit ) rem redmineのデータベースをバックアップする %DIR_REDMINE%\mariadb\bin\mysqldump.exe -u %DB_USER% -p%DB_PASS% bitnami_redmine -P %DB_PORT% --default-character-set=binary > %DIR_BACKUP%\%DATE_STR%\backup.dmp rem filesとpluginsディレクトリのコピー echo %date:~0,4%-%date:~5,2%-%date:~8,2% %time:~0,2%:%time:~3,2%:%time:~6,2% [info] ファイル群のコピー開始 >> %DIR_BATLOG%\%FILE_BATLOG% xcopy /E /Y %DIR_REDMINE%\apps\redmine\htdocs\files %DIR_BACKUP%\%DATE_STR%\files xcopy /E /Y %DIR_REDMINE%\apps\redmine\htdocs\plugins %DIR_BACKUP%\%DATE_STR%\plugins echo %date:~0,4%-%date:~5,2%-%date:~8,2% %time:~0,2%:%time:~3,2%:%time:~6,2% [info] ファイル群のコピー終了 >> %DIR_BATLOG%\%FILE_BATLOG% rem バックアップend echo %date:~0,4%-%date:~5,2%-%date:~8,2% %time:~0,2%:%time:~3,2%:%time:~6,2% [info] バックアップ処理を終了します >> %DIR_BATLOG%\%FILE_BATLOG%
3. バックアップの自動化
作成したバックアップ用バッチを、Windowsのタスクスケジューラに登録します。
まず、次の順にクリックしていきます。
Windowsマーク
↓
Windows管理ツール
↓
タスクスケジューラ
今回は、下図の手順、内容で登録します。
まず、操作 → タスクの作成 をクリックし、タスクの作成ウィンドウを開きます。
全般 タブを下図のように入力・選択。
トリガー タブをクリックし、新規ボタンをクリック。すると、ウィンドウが開くので、下図のとおり入力・選択。
操作 タブをクリックし、新規ボタンをクリック。すると、ウィンドウが開くので、下図のとおり入力・選択。
条件 タブをクリックし、下図のとおり入力・選択。
設定 タブをクリックし、下図のとおり入力・選択。
OKをクリックすると、ユーザー名とパスワードを求められるので、Windowsのログイン情報を入力し、OKをクリック。
これで、設定した時間に自動でBitnami Redmineのバックアップを行ってくれます。
めでたしめでたし。