Top/Redmine/Redmine 2.6のバックアップ用シェルスクリプト作成

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の実行時にエラーとなることがあるようです。
本番環境に導入したプラグインのインストーラはすべて残しておき、インストール手順も記録しておきましょう。
同じように、本番環境に導入したテーマのインストーラはすべて残しておき、インストール手順も記録しておきましょう。

リストア方法

以下にリストア方法を記載しました。

このページを共有:
  • このページをはてなブックマークに追加 このページを含むはてなブックマーク
  • このページをlivedoor クリップに追加 このページを含むlivedoor クリップ
  • このページをYahoo!ブックマークに追加
  • このページを@niftyクリップに追加
  • このページをdel.icio.usに追加
  • このページをGoogleブックマークに追加

このページのURL:

ページ新規作成

新しいページはこちらから投稿できます。

TOP