redmineバックアップ処理
毎回設定が面倒なので、
結構汎用的に使える?そして、簡単に実装できる?
クーロン+シェルを利用したバックアップ処理を書いてみました。
※ ロギングやエラー処理は適宜入れてみてください。
redmine_backup.sh
#!/bin/bash
# Redmine Backup
# 定義
# バックアップ先フォルダ
TO_BK_DIR=/backup/to
# 現在日付(バックアップファイル名に使用)
NOW=`date +%Y%m%d%H`
# DBバックアップ
mysqldump -u DB_USER -pDB_PASS DB_NAME | gzip > $TO_BK_DIR/redmine/redmine_db_$NOW.sql.gz
# アップロードファイルバックアップ
gzip -rc /REDMINE_ROOT/files > $TO_BK_DIR/redmine_upload_$NOW.tgz
# 世代管理(更新日が7日以前のものは削除)
find $TO_BK_DIR/ -mtime +7 -type f -exec rm -f {} \;
# バックアップサーバと同期
rsync -avz --delete -e ssh $TO_BK_DIR/ username@remote_server:$TO_BK_DIR/
クーロンの設定はこんな感じ(日次午前4時起動)
0 4 * * * redmine_backup.sh >/dev/null 2>&1
sshとrsyncでパスワード無し認証のやり方などは、ここ参照