How to backup Redmine on Google Storage Oct 27, 2010
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='<redmine db username>' DB_PASSWORD='<redmine db password>' DB_NAME='<redmine db name>' REDMINE_ROOT='<full path to redmine root>' # e.g. /home/peter/rails/redmine.commanigy.com' BACKUP_ROOT='<full path to 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.