Bash script dump MongoDB and upload to S3

?
R
Bash

Dump a MongoDB instance, create a tarball from the dump and upload the tarball to AWS S3. Requirements: * AWS CLI * free space on root mount or destination folder (df -h)

1#!/bin/sh
2set -e
3
4# AWS Config
5export AWS_ACCESS_KEY_ID="xxxx"
6export AWS_SECRET_ACCESS_KEY="uuuuu"
7
8# Dump from mongodb host into backup directory
9DB_HOST="xxx.xxx.xxx:55168"
10DB_USERNAME="zzzz"
11DB_PASSWORD="yyyy"
12DB_COLLECTION_NAME="aaaa"
13DB_NAME="xxxx"
14BUCKET="mybucket"
15
16BACKUP_LOCAL_DIR="/opt/backups"
17TIMESTAMP=$(date -u +"%Y-%m-%dT%H-%M-%SZ")
18OUTDIR="$BACKUP_LOCAL_DIR/$DB_NAME-$TIMESTAMP"
19OUTFILE="$DB_NAME-backup-$TIMESTAMP.tar.gz"
20OUTPATH="$BACKUP_LOCAL_DIR/$OUTFILE"
21
22mkdir $BACKUP_LOCAL_DIR
23sudo chown -R $(whoami) $BACKUP_LOCAL_DIR
24
25mongodump -h $DB_HOST -d $DB_NAME -c $DB_COLLECTION_NAME -u $DB_USERNAME -p $DB_PASSWORD -o $OUTDIR
26
27tar -czf "$OUTPATH" "$OUTDIR"
28
29aws s3 cp "$OUTPATH" s3://$BUCKET --region us-east-1
30
31aws s3 ls s3://my-mongo-backups
32

Created on 5/23/2018