[bash]
#!/bin/sh
#
# Redmine DB backup script
#
FILE_DIR=/app/redmine/files/
DMP_DIR=/var/tmp/
MNT_DIR=/mnt/rm/
BAK_DIR="//10.0.0.0/windows/Backup/dir/rm"
PERIOD=5
DB_USER=dbuser
DB_PASS=xxxxxx
USER_NAME=username
PASSWD=xxxxxxx
EXIT_STATUS=0
FILE_NAME=`date +%y%m%d`
RM_FILE_NAME=`date –date "$PERIOD days ago" +%y%m%d`
DMP_FILE=$DMP_DIR/Redmine_DB_$FILE_NAME.sql.gz
ARC_FILE=$DMP_DIR/Redmine_FILE_$FILE_NAME.tar.gz
RM_DMP_FILE=$MNT_DIR/Redmine_DB_$RM_FILE_NAME.sql.gz
RM_ARC_FILE=$MNT_DIR/Redmine_FILE_$RM_FILE_NAME.tar.gz
# ファイルサーバへマウント
mount -t cifs -o username=$USER_NAME,password=$PASSWD $BAK_DIR $MNT_DIR
# データのダンプ
mysqldump –opt –single-transaction –default-character-set=binary -u $DB_USER –password=$DB_PASS –all-databases | gzip > $DMP_FILE
echo "Redmine DB Backup OK"
# 添付ファイルのアーカイブ
tar cfvz $ARC_FILE $FILE_DIR
echo "Redmine Files Backup OK"
# ファイルの移動
mv $DMP_FILE $MNT_DIR
mv $ARC_FILE $MNT_DIR
echo "Redmine Files Move to Server OK"
# ファイルの削除
rm $RM_DMP_FILE
rm $RM_ARC_FILE
echo "Redmine Files Cleanup OK"
umount -l $MNT_DIR
exit $EXIT_STATUS
[/bash]