🐧 Скрипт shell для резервного копирования базы данных MongoDB

MongoDB – это кроссплатформенный, ориентированный на документы сервер баз данных NoSql.

В этом руководстве вы найдете скрипт оболочки для резервного копирования базы данных MongoDB.

Скрипт также удаляет резервные копии с сервера старше указанного дня.

Вы можете скопировать этот скрипт:

!/bin/bash





######################################################################



##



##   MongoDB Database Backup Script 



##   Written By: Rahul Kumar



##   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 ##############################

Расписание резервного копирования MongoDB

Вы можете легко запланировать этот скрипт в crontab для регулярного резервного копирования баз данных.

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



2020-06-23T08:44:52
Скрипты