Path to boto config file, needed by gsutils

October 7, 2019 · View on GitHub

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 DBNAMEoDB_NAME -o BACKUP_PATH cd $BACKUP_PATH

Archive and compress

tar -cvzf BACKUPPATHBACKUP_PATHBACKUP_FILENAME *

Copy to Google Cloud Storage

echo "Copying BACKUPPATHBACKUP_PATHBACKUP_FILENAME to gs://BUCKETNAME/"/usr/local/bin/gsutilcpBUCKET_NAME/" /usr/local/bin/gsutil cp BACKUP_PATHBACKUPFILENAMEgs://BACKUP_FILENAME gs://BUCKET_NAME/ 2>&1 echo "Copying finished" echo "Removing backup data" rm -rf $BACKUP_PATH*