スクリプト本体
# vi /usr/local/redmine_backup.sh
-----------------------------
#!/bin/bash
PATH=/usr/local/sbin:/usr/bin:/bin
# バックアップ対象
TARGET_DIR=/usr/local/redmine
TARGET="log files config"
SQL=redmine_dump.sql
# バックアップ先
BACKUP_DIR=/backup/
# バックアップファイル名
ARCHIVE_NAME=redmine_backup
# 今日の日付を取得する
DATE=`/bin/date '+%Y%m%d'`
# 削除する日付を取得する
DELETE_DATE=`/bin/date -d '3 day ago' +%Y%m%d`
# バックアップ先のチェック
if [ ! -d "${BACKUP_DIR}" ]; then
mkdir ${BACKUP_DIR}
fi
# バックアップ対象のディレクトリへ移動
cd ${TARGET_DIR}
# バックアップ(SQLのユーザ/パスを指定)
mysqldump -u ユーザ名 -pパスワード redmine > ${SQL}
tar czf ${ARCHIVE_NAME}.tar.gz ${T1} ${TARGET} ${SQL}
rm -f ${SQL}
# バックアップ先へ移動、日付を付加
mv ${ARCHIVE_NAME}.tar.gz ${BACKUP_DIR}${ARCHIVE_NAME}_${DATE}.tar.gz
# 過去のバックアップを削除
if [ -f "${BACKUP_DIR}${ARCHIVE_NAME}_${DELETE_DATE}.tar.gz" ]; then
rm -rf ${BACKUP_DIR}${ARCHIVE_NAME}_${DELETE_DATE}.tar.gz
fi