If you would like to backup your Redmine database and files, you might to consider Google Storage as your backup location. It comes with a 100 GB free monthly usage.
First, you need to sign up for a Google Storage account if you don’t have an account already.
Once done, download and install GSUtil which is a command line tool, allowing you to manage buckets.
Paste the following script into a file called “backup_redmine.sh”
# required settings DB_USERNAME='
' DB_PASSWORD=' ' DB_NAME=' ' REDMINE_ROOT=' ' # e.g. /home/peter/rails/redmine.commanigy.com' BACKUP_ROOT=' ' # e.g. /home/peter/backups (will be created) # optional settings GS_ROOT='gs://redmine-backup' GS_FILENAME='backup_'`date +%Y%m%d`'.tar.gz' echo 'Setting up directories' mkdir $BACKUP_ROOT/redmine/db -p mkdir $BACKUP_ROOT/redmine/files -p echo 'Backing up database' /usr/bin/mysqldump -u $DB_USERNAME --password=$DB_PASSWORD $DB_NAME | gzip > $BACKUP_ROOT/redmine/db/`date +%Y%m%d`.gz echo 'Backing up attachments' rsync -a $REDMINE_ROOT/files/ $BACKUP_ROOT/redmine/files/ echo 'Packing into single archive' tar -czPf $GS_FILENAME $BACKUP_ROOT/redmine/ echo 'Creating bucket on Google Storage (if not already created)' gsutil mb $GS_ROOT echo 'Copying backup archive to Google Storage' gsutil cp $GS_FILENAME $GS_ROOT echo 'Cleanup by removing archive' rm $GS_FILENAME echo 'Backup complete'
You might want to apply execute rights to your script using
chmod +x backup_redmine.sh
And maybe even add it to your crontab to get daily backups
Then add this line
@daily FULL_PATH_TO_SCRIPT > /dev/null
Let me know if you improve this script.