MongoDB backups op Amazon S3 met S3CMD

[Sorry! Dutch only]

In mijn laatste post heb ik geschreven over de installatie, configuratie van S3CMD en hoe je eenvoudig backups kan maken van je MySQL databases en web files.

In deze post leg ik uit hoe je heel eenvoudig een backup kan maken van je MongoDb op je Amazon s3 Bucket met S3CMD.

Op veel van mijn sites draai ik MongoDB dus ik vond het tijd dat ik maar eens een backup ging maken van deze databases op een andere cloud-omgeving dan mijn DigitalOcean server. Ook maar op een Amazon S3 Bucket.

Met onderstaand bash script kan je via een cronjob kinderlijk eenvoudig backups maken van je MongoDb. Het is eenvoudig aan te passen naar eigen wensen.

Via deze weg is je MongoDB ook weer netjes gebackuped op een veilige Cloud omgeving.

#!/bin/bash
#add right params at [PARAM]
export LC_ALL=C

BAK="/opt/backup"

TIMESTAMP=`date +%F-%H%M`
S3_BUCKET_NAME=[BUCKET_NAME]
S3_BUCKET_PATH=[BUCKET_PATH]

MONGO_DBNAME=[MONGO_DBNAME]

#creating mongo backup
/usr/bin/mongodump --port 27017 --db $MONGO_DBNAME --out $BAK/$MONGO_DBNAME-$TIMESTAMP

#tar the backupsfiles
tar cf $BAK/$MONGO_DBNAME-$TIMESTAMP.tar $BAK/$MONGO_DBNAME-$TIMESTAMP

#put the files on S3
s3cmd put $BAK/$MONGO_DBNAME-$TIMESTAMP.tar s3://$S3_BUCKET_NAME/$S3_BUCKET_PATH/$MONGO_DBNAME-$TIMESTAMP.tar

#delete 2 days old backups on your server
find $BAK/*.tar -mtime +2 -exec rm {} \;