A Shell Script to Backup MongoDB Database

Channel: Linux
Abstract: /bin/bash ###################################################################### ## ## MongoDB Database Backup Script ## Written By/usr/local/bin TODA

MongoDB is a cross-platform, document-oriented NoSQL database server. In this tutorial, you will find a shell script to backup the MongoDB database. The script also removes backups from servers older than specified days.

Download MongoDB Backup Script

You can copy or download this script directly from Github.

Also, you can copy this script below:

#!/bin/bash ###################################################################### ## ## MongoDB Database Backup Script ## Written By: Rahul Kumar ## URL: https://tecadmin.net/shell-script-backup-mongodb-database/ ## Update on: June 20, 2020 ## ###################################################################### export PATH=/bin:/usr/bin:/usr/local/bin TODAY=`date +"%d%b%Y"` ###################################################################### ###################################################################### DB_BACKUP_PATH='/backup/mongo' MONGO_HOST='localhost' MONGO_PORT='27017' # If mongodb is protected with username password. # Set AUTH_ENABLED to 1 # and add MONGO_USER and MONGO_PASSWD values correctly AUTH_ENABLED=0 MONGO_USER='' MONGO_PASSWD='' # Set DATABASE_NAMES to "ALL" to backup all databases. # or specify databases names seprated with space to backup # specific databases only. DATABASE_NAMES='ALL' #DATABASE_NAMES='mydb db2 newdb' ## Number of days to keep local backup copy BACKUP_RETAIN_DAYS=30 ###################################################################### ###################################################################### mkdir -p ${DB_BACKUP_PATH}/${TODAY} AUTH_PARAM="" if [ ${AUTH_ENABLED} -eq 1 ]; then AUTH_PARAM=" --username ${MONGO_USER} --password ${MONGO_PASSWD} " fi if [ ${DATABASE_NAMES} = "ALL" ]; then echo "You have choose to backup all databases" mongodump --host ${MONGO_HOST} --port ${MONGO_PORT} ${AUTH_PARAM} --out ${DB_BACKUP_PATH}/${TODAY}/ else echo "Running backup for selected databases" for DB_NAME in ${DATABASE_NAMES} do mongodump --host ${MONGO_HOST} --port ${MONGO_PORT} --db ${DB_NAME} ${AUTH_PARAM} --out ${DB_BACKUP_PATH}/${TODAY}/ done fi ######## Remove backups older than {BACKUP_RETAIN_DAYS} days ######## DBDELDATE=`date +"%d%b%Y" --date="${BACKUP_RETAIN_DAYS} days ago"` if [ ! -z ${DB_BACKUP_PATH} ]; then cd ${DB_BACKUP_PATH} if [ ! -z ${DBDELDATE} ] && [ -d ${DBDELDATE} ]; then rm -rf ${DBDELDATE} fi fi ######################### End of script ##############################123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475#!/bin/bash ##########################################################################   MongoDB Database Backup Script ##   Written By: Rahul Kumar##   URL: https://tecadmin.net/shell-script-backup-mongodb-database/##   Update on: June 20, 2020######################################################################## export PATH=/bin:/usr/bin:/usr/local/binTODAY=`date +"%d%b%Y"` ############################################################################################################################################ DB_BACKUP_PATH='/backup/mongo'MONGO_HOST='localhost'MONGO_PORT='27017' # If mongodb is protected with username password.# Set AUTH_ENABLED to 1 # and add MONGO_USER and MONGO_PASSWD values correctly AUTH_ENABLED=0MONGO_USER=''MONGO_PASSWD=''  # Set DATABASE_NAMES to "ALL" to backup all databases.# or specify databases names seprated with space to backup # specific databases only. DATABASE_NAMES='ALL'#DATABASE_NAMES='mydb db2 newdb' ## Number of days to keep local backup copyBACKUP_RETAIN_DAYS=30   ############################################################################################################################################ mkdir -p ${DB_BACKUP_PATH}/${TODAY} AUTH_PARAM="" if [ ${AUTH_ENABLED} -eq 1 ]; then AUTH_PARAM=" --username ${MONGO_USER} --password ${MONGO_PASSWD} "fi if [ ${DATABASE_NAMES} = "ALL" ]; then echo "You have choose to backup all databases" mongodump --host ${MONGO_HOST} --port ${MONGO_PORT} ${AUTH_PARAM} --out ${DB_BACKUP_PATH}/${TODAY}/else echo "Running backup for selected databases" for DB_NAME in ${DATABASE_NAMES} do mongodump --host ${MONGO_HOST} --port ${MONGO_PORT} --db ${DB_NAME} ${AUTH_PARAM} --out ${DB_BACKUP_PATH}/${TODAY}/ donefi  ######## Remove backups older than {BACKUP_RETAIN_DAYS} days  ######## DBDELDATE=`date +"%d%b%Y" --date="${BACKUP_RETAIN_DAYS} days ago"` if [ ! -z ${DB_BACKUP_PATH} ]; then      cd ${DB_BACKUP_PATH}      if [ ! -z ${DBDELDATE} ] && [ -d ${DBDELDATE} ]; then            rm -rf ${DBDELDATE}      fifi ######################### End of script ##############################

Schedule MongoDB Backup Script

You can easily schedule this script under crontab to backup databases regularly.

0 2 * * * /backup/mongo-backup.sh10 2 * * * /backup/mongo-backup.sh

Ref From: tecadmin

Related articles