Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
MongoDB ReplicaSet Backup Script on Google Compute Engine and Google Cloud Storage
# Path to boto config file, needed by gsutils
BOTO_CONFIG="/etc/boto.cfg"
# Path in which to create the backup (will get cleaned later)
BACKUP_PATH="/mnt/data/dump/"
# DB name
DB_NAME="mydatabase"
# Google Cloud Storage Bucket Name
BUCKET_NAME="mybackupbucket"
# Don't run on the master of a replica set, only on replicas
IS_MASTER=`mongo --quiet --eval "d=db.isMaster(); print( d['ismaster'] );"`
if [ "$IS_MASTER" == "true" ]
then
exit 2
fi
CURRENT_DATE=`date +"%Y%m%d-%H%M"`
# Backup filename
BACKUP_FILENAME="$DB_NAME_$CURRENT_DATE.tar.gz"
# Create the backup
mongodump --db $DB_NAME -o $BACKUP_PATH
cd $BACKUP_PATH
# Archive and compress
tar -cvzf $BACKUP_PATH$BACKUP_FILENAME *
# Copy to Google Cloud Storage
echo "Copying $BACKUP_PATH$BACKUP_FILENAME to gs://$BUCKET_NAME/"
/usr/local/bin/gsutil cp $BACKUP_PATH$BACKUP_FILENAME gs://$BUCKET_NAME/ 2>&1
echo "Copying finished"
echo "Removing backup data"
rm -rf $BACKUP_PATH*
@nikmartin

This comment has been minimized.

Copy link

nikmartin commented Nov 14, 2014

Most excellent, thanks! One correction:

CURRENT_DATE=`date +"%Y%m%d-%H%m"`
should be
CURRENT_DATE=`date +"%Y%m%d-%H%M"`
@urish

This comment has been minimized.

Copy link

urish commented Nov 28, 2014

Thanks for sharing!

@erans

This comment has been minimized.

Copy link
Owner Author

erans commented Jan 14, 2015

@nikmartin thanks. I've fixed it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.