Skip to content

Instantly share code, notes, and snippets.

@marantz
Last active August 29, 2018 15:30
Show Gist options
  • Save marantz/74ae7907b68fd0c3b57e to your computer and use it in GitHub Desktop.
Save marantz/74ae7907b68fd0c3b57e to your computer and use it in GitHub Desktop.
MongoDB Dump shell script
#!/bin/sh
PORT=27017
MONGODB_HOME=/opt/mongodb
MONGODB_BIN=${MONGODB_HOME}/bin
MONGO="${MONGODB_BIN}/mongo --host centos --port ${PORT} --quiet"
MONGODUMP="${MONGODB_BIN}/mongodump --host centos --port ${PORT}"
BACKUP_DIR=${MONGODB_HOME}/data/backup
echo "BACKUP DATABASE"
_DB_LIST=(`echo "show dbs" | $MONGO | grep -v admin | grep -v config | awk {'print $1'}`)
for _DB in ${_DB_LIST[@]}
do
####################################################
# FETCH DB LIST FOR COLLECTION
_COL_LIST=(`echo "show collections" | $MONGO $_DB`)
_COL_SIZE=${#_COL_LIST[@]}
#echo "SIZE=$_COL_SIZE"
if [ $_COL_SIZE -eq 0 ]
then
echo "SKIP [$_DB] Collection Empty!"
continue
fi
for _COL_NAME in ${_COL_LIST[@]}
do
############################################
# COLLECTION DUMP START
echo "####################################################";
echo "DUMP [$_DB]@[$_COL_NAME]"
echo "####################################################"
$MONGODUMP \
-d $_DB \
-c $_COL_NAME \
-o $BACKUP_DIR \
#-q={x:{$gt:1}}
# COLLECITON DUMP END
############################################
done
# END OF DB FETCH LOOP
####################################################
done
cd $BACKUP_DIR
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment