Redmine/Redmine 2.6のバックアップ用シェルスクリプト作成
MySQLを使っている場合のRedmineのバックアップシェルスクリプト作成方法です。
(作業日:2015/03/02)
※便宜上、すべてrootユーザーで作業しているように書いてありますが、基本的に作業は一般ユーザーで行い、管理者権限が必要なコマンドはsudoを用いて実行してください。
目次
基本情報
redmineでは、バックアップする対象が、データベースとファイルの2種類のデータになります。
データベースはチケットの内容そのもの、ファイルは添付ファイルなどになります。
まず、こちらのページを見て基本的なバックアップ方法を理解します。
データのバックアップ方法 - Redmine.jp
MySQLの情報を確認
MySQLユーザー名、MySQLパスワード、データベース名はconfig/database.yml内のusername, password, databaseを参照すれば確認できます。
以下のコマンドで確認します。
# vi /var/lib/redmine/config/database.yml
- ファイル例
production: adapter: mysql2 database: db_redmine host: localhost username: user_redmine password: adminredmine encoding: utf8
この例の場合、ユーザ名は「user_redmine」、パスワードは「adminredmine」となります。
バックアップ用シェルスクリプトの作成
以下のコマンドでファイルを作成します。
# md /home/redmine # cd /home/redmine # vi ./rmbackup.sh
- ファイル例
#!/bin/sh readonly REDMINE_HOME=/var/lib/redmine readonly BACKUP_DIR=/home/redmine readonly TODAY_DATE=`date +%Y%m%d` cd $REDMINE_HOME tar zcvf $BACKUP_DIR/files_${TODAY_DATE}.tgz files cd $BACKUP_DIR mysqldump -u user_redmine -padminredmine db_redmine > db_$TODAY_DATE.dmp tar zcvf db_${TODAY_DATE}.tgz db_$TODAY_DATE.dmp rm -f db_$TODAY_DATE.dmp
この例の場合、ユーザ名は「user_redmine」、パスワードは「adminredmine」となります。
シェルスクリプトに実行権限を付与します。
# chmod 755 /home/redmine/rmbackup.sh
シェルスクリプトの実行結果
# cd /home/redmine/ # ./rmbackup.sh # ls -l total 24 -rw-r--r-- 1 root root 14157 Nov 5 18:15 db_20141105.tgz -rw-r--r-- 1 root root 179 Nov 5 18:15 files_20141105.tgz -rwxr-xr-x 1 root root 351 Nov 5 18:14 rmbackup.sh
別マシンへのファイルバックアップ例
できたファイルは、適宜、別サーバやNAS等の別マシンに保管するようにしてください。
別マシンへのftpバックアップも含んだスクリプト例は以下の通りです。
#!/bin/sh readonly REDMINE_HOME=/var/lib/redmine readonly BACKUP_DIR=/home/redmine readonly TODAY_DATE=`date +%Y%m%d` readonly FTPSERVER=192.168.1.100 readonly FTPUSER=ftpuser1 readonly FTPPASS=ftppassword1 cd $REDMINE_HOME tar zcvf $BACKUP_DIR/files_${TODAY_DATE}.tgz files cd $BACKUP_DIR mysqldump -u user_redmine -padminredmine db_redmine > db_$TODAY_DATE.dmp tar zcvf db_${TODAY_DATE}.tgz db_$TODAY_DATE.dmp rm -f db_$TODAY_DATE.dmp ftp -n <<END open $FTPSERVER user $FTPUSER $FTPPASS cd array1/ftp/rmbackup binary prompt put files_${TODAY_DATE}.tgz put db_${TODAY_DATE}.tgz quit END
定期実行の登録
作成したシェルスクリプトはcronに設定し、定期的に実行します。
毎日午前2:00に実行させる場合の登録例は以下の通りです。
# crontab -e
- ファイル内容
0 2 * * * /home/redmine/rmbackup.sh
リストアを成功させるための日常の注意点
バックアップしたRedmineと、復元するRedmineとでプラグイン構成が違う場合、プラグインがデータベーススキーマに手を入れているとRedmineの実行時にエラーとなることがあるようです。
本番環境に導入したプラグインのインストーラはすべて残しておき、インストール手順も記録しておきましょう。
同じように、本番環境に導入したテーマのインストーラはすべて残しておき、インストール手順も記録しておきましょう。
リストア方法
以下にリストア方法を記載しました。
このページのURL: