Created
March 23, 2017 13:18
-
-
Save evadeflow/ca1d049ff27265d0cd1addd3fcef8ff8 to your computer and use it in GitHub Desktop.
Daily cron script to back up a Bitnami Redmine instance
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#! /bin/bash | |
set -euo pipefail | |
DAY=`date +"%Y%m%d"` | |
HOUR=`date +"%H%M"` | |
REDMINE_BACKUP_PATH=/mnt/i-drive/backups/redmine | |
REDMINE_HOME=/home/redmine/app | |
REDMINE_DB_NAME=bitnami_redmine | |
REDMINE_DB_USER=bitnami | |
REDMINE_DB_PASS=d45aX59a39 | |
REDMINE_DB_BACKUP=$REDMINE_HOME/../backups/redmine_mysql_db.sql | |
REDMINE_BACKUP_NAME="redmine_"$DAY"_"$HOUR".tar.bz2" | |
REDMINE_BACKUP_LIVE_TIME=7 | |
REDMINE_BACKUP_FILE_PATTERN=redmine_*.tar.bz2 | |
# Ensure required directories exist | |
mkdir -p ${REDMINE_BACKUP_PATH} | |
mkdir -p ${REDMINE_HOME}/backups | |
echo "Backing up Redmine's MySQL database..." | |
${REDMINE_HOME}/redmine/mysql/bin/mysqldump --user=$REDMINE_DB_USER --password=$REDMINE_DB_PASS $REDMINE_DB_NAME > $REDMINE_DB_BACKUP | |
echo "($REDMINE_DB_BACKUP) done." | |
echo | |
echo "Backing up Redmine's app directory..." | |
tar -cjf $REDMINE_BACKUP_PATH/$REDMINE_BACKUP_NAME $REDMINE_HOME | |
echo "($REDMINE_BACKUP_PATH/$REDMINE_BACKUP_NAME) done." | |
echo "Purging outdated backups..." | |
for file in $(find $REDMINE_BACKUP_PATH/$REDMINE_BACKUP_FILE_PATTERN -mtime +$REDMINE_BACKUP_LIVE_TIME); do | |
rm $file | |
done | |
echo "done." |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Note To Self: The
i-drive
mount was actually an NTFS share on a corporate network that had tons of free space (see fstab gist).