2022-07-26 18:00

Windows10にインストールしたRedmineを自動でバックアップする


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管理ツール

タスクスケジューラ


今回は、下図の手順、内容で登録します。


まず、操作 → タスクの作成 をクリックし、タスクの作成ウィンドウを開きます。

task01


全般 タブを下図のように入力・選択。

task02


トリガー タブをクリックし、新規ボタンをクリック。すると、ウィンドウが開くので、下図のとおり入力・選択。

task03


操作 タブをクリックし、新規ボタンをクリック。すると、ウィンドウが開くので、下図のとおり入力・選択。


task04


条件 タブをクリックし、下図のとおり入力・選択。

task05


設定 タブをクリックし、下図のとおり入力・選択。

task06


OKをクリックすると、ユーザー名とパスワードを求められるので、Windowsのログイン情報を入力し、OKをクリック。

task07

これで、設定した時間に自動でBitnami Redmineのバックアップを行ってくれます。
めでたしめでたし。

サイト内検索

Twitterタイムライン

スポンサードリンク

Writer

よしはら  慶  よしとき

企業にお勤めのシステムエンジニア。
山本彩さんが好き。(可愛いよね?)