Un script de shell para hacer una copia de seguridad de la base de datos MongoDB

Un script de shell para hacer una copia de seguridad de la base de datos MongoDB

¿Sabía que las bases de datos de MongoDB tienen un mecanismo de copia de seguridad incorporado que se puede acceder a través de Shell o el proceso MongoD? El proceso de MongoD toma automáticamente una instantánea cada vez que una base de datos pasa a otro estado. Estos diferentes estados son: comenzar, detener, actualizar y recuperarse después de un accidente. Sin embargo, estas instantáneas no serán suficientes en caso de fallas catastróficas como la corrupción del disco o el desastre natural. Para proteger sus valiosos datos de tales amenazas, es aconsejable implementar una estrategia de copia de seguridad automatizada para sus bases de datos MongoDB.

En este artículo, discutiremos cómo crear copias de seguridad automatizadas para sus bases de datos MongoDB utilizando un script de shell simple.

Script de shell para copia de seguridad de MongoDB

El script de shell para la copia de seguridad de la base de datos de MongoDB está disponible en GitHub. Puede usar el siguiente enlace para obtener el acceso del script de shell.

https: // github.com/tecrahul/shell-scripts/blob/master/backup-mongo.mierda

Alternativamente, puede copiar el script a continuación y guardarlo en su sistema Linux.

#!/bin/Bash ########################################## ###################### ## ## MongoDB Base de datos Script ## Escrito por: Rahul Kumar ## url: https: // tecadmin.Actualización net/ shell-script-backup-mongodb-database/ ## en: 20 de junio de 2020 ## ######################## ######################################### Ruta de exportación =/bin:/ USR/bin:/usr/local/bin Today = "date +"%d%b%y "" ####################### ############################################## ############################################## ############# 3. # Set auth_enabled a 1 # y agregue Mongo_user y Mongo_Passwd los valores correctamente Auth_enabled = 0 Mongo_user = "Mongo_Passwd =" # Establecer database_names en "todos" para hacer copias de seguridad de todas las bases de datos. # o especificar los nombres de bases de datos separados con espacio para hacer una copia de seguridad # bases de datos específicas solo. Database_names = "all"#database_names = 'mydb db2 newdb' ## Número de días para mantener una copia de copia de seguridad local Backup_etain_days = 30 #################### ############################################## ############################################## ################ mkdir -p $ db_backup_path/$ hoy if [$ auth_enabled -eq 1]; luego auth_param = "--Username $ Mongo_user - -password $ mongo_passwd" fi if [$ database_names = "all"]; Luego echo "Usted ha optado por hacer una copia de seguridad de todas las bases de datos" MongoDump --host $ Mongo_host --port $ mongo_port $ auth_param --out $ db_backup_path/ $ hoy/ else eco " bases de datos "para db_name en $ database_names do MongoDump --host $ Mongo_host --port $ Mongo_port - -db $ db_name $ auth_param --out $ db_backup_path/ $ hoy/ hecho FI ####### Eliminar copias de seguridad más antiguas que backup_etain_days días ####### DBDELDATE = "Date +"%d%b%y " - -date = "$ backup_etain_days hace días" "if [ ! -z $ db_backup_path]; Entonces cd $ db_backup_path if [ ! -z $ dbdeldate] && [-d $ dbdeldate]; Entonces rm -rf $ dbdeldate fi Fi ####################### Fin del guión ########## #################
12345677891011121314151617181920212222324242227282930313333353733944042444444444444444499955555253555562S#!/bin/Bash ########################################## ########################## Script de copia de seguridad de la base de datos Mongodb ## escrito por: Rahul Kumar ## url: https: // tecadmin.Actualización de net/shell-script-backup-mongodb-database/## en: 20 de junio de 2020 ########################## ######################################### Ruta de exportación =/bin:/ USR/bin:/usr/local/bintoday = 'date +"%d%b%y"' ######################## ############################################## ############################################## ############# db_backup_path = '/backup/mongo'mongo_host =' localhost'mongo_port = '27017'#Si MongoDB está protegido con una contraseña de nombre de usuario.# Set auth_enabled a 1 # y agregue mongo_user y mongo_passwd valores correctamente auth_enabled = 0mongo_user = "mongo_passwd =" # set database_names en "todos" para hacer copias de seguridad de todas las bases de datos.# o especificar los nombres de bases de datos separados con espacio para hacer una copia de seguridad # bases de datos específicas solo. Database_names = 'All'#database_names = 'mydb db2 newdb' ## Número de días para mantener una copia de seguridad local copybackup_etain_days = 30 ##################### ############################################## ############################################## ##############. luego auth_param = "--Username $ Mongo_user - -password $ mongo_passwd" fi if [$ database_names = "all"]; Luego echo "Usted ha optado por hacer una copia de seguridad de todas las bases de datos" MongoDump --host $ Mongo_host --port $ mongo_port $ auth_param --out $ db_backup_path/$ hoy/else eco " Bases de datos "para db_name en $ database_names do MongoDump --host $ Mongo_host --port $ Mongo_port - -db $ db_name $ auth_param - - - -Out $ db_backup_path/ $ Today/ donfi ####### Eliminar copias de seguridad más antiguas que backup_etain_days días ####### dbdeldate = 'date +"%d%b%y" - - - - -date = "$ backup_etain_days hace días" 'if [ ! -z $ db_backup_path]; Entonces cd $ db_backup_path if [ ! -z $ dbdeldate] && [-d $ dbdeldate]; Entonces rm -rf $ dbdeldate fifi ####################### END DEL SCRIPT ###########. ################

Ejecutar el script manualmente

Guarde el script anterior en un archivo con .mierda extensión. Quiero guardar todas las copias de seguridad en /el directorio de copia de seguridad. Así que colocó el script de shell en el mismo directorio. Luego establezca el permiso de ejecutar en el script.

CHMOD +X /COMPORTACIÓN /COMPORTACIÓN MONGO.mierda  

Ejecute el script de shell como se muestra a continuación:

Bash /Backup /Backup-Mongo.mierda  

Programe script de copia de seguridad de MongoDB

Puede programar fácilmente este script en Crontab para hacer una copia de seguridad de las bases de datos. Para editar el crontab, ejecutar crontab -e comandar y agregar el siguiente código:

## Base de datos de copia de seguridad diariamente a las 02:00 am 0 2 * * * /copia de seguridad /mongo-backup.mierda
12## Base de datos de copia de seguridad diariamente a las 02:00 am0 2 * * * /copia de seguridad /mongo-backup.mierda

Envolver

En este tutorial, hemos discutido un script de shell que ayuda a hacer una copia de seguridad de las bases de datos MongoDB manualmente. Además, puede programar scripts para hacer una copia de seguridad de bases de datos de forma regular.