Un script shell pour sauvegarder la base de données MongoDB

Un script shell pour sauvegarder la base de données MongoDB

Saviez-vous que les bases de données MongoDB ont un mécanisme de sauvegarde intégré qui est accessible via Shell ou le processus Mongod? Le processus Mongod prend automatiquement un instantané à chaque fois qu'une base de données passe à un autre état. Ces différents états sont: commencer, arrêter, mettre à niveau et récupérer après un accident. Cependant, ces instantanés ne seront pas suffisants en cas d'échecs catastrophiques tels que la corruption du disque ou la catastrophe naturelle. Pour protéger vos précieuses données contre ces menaces, il est conseillé de mettre en œuvre une stratégie de sauvegarde automatisée pour vos bases de données MongoDB.

Dans cet article, nous discuterons de la façon de créer des sauvegardes automatisées pour vos bases de données MongoDB à l'aide d'un simple script shell.

Script de shell pour la sauvegarde MongoDB

Le script shell pour la sauvegarde de la base de données MongoDB est disponible sur github. Vous pouvez utiliser le lien ci-dessous pour accéder au script shell.

https: // github.com / Tecrahul / Shell-Scripts / Blob / Master / Backup-Mongo.shot

Alternativement, vous pouvez copier le script ci-dessous et l'enregistrer sur votre système Linux.

#!/ bin / bash ############################################### ########################## ## ## Script de sauvegarde de la base de données MongoDB ## Écrit par: Rahul Kumar ## URL: https: // tecadmin.net / shell-script-backup-mongodb-database / ## Mise à jour sur: 20 juin 2020 ## ########################## ############################################ # ° usr / bin: / usr / local / bin dès aujourd'hui = "date +"% d% b% y "" ######################### ########################################################### #################################################### ############## DB_BACKUP_PATH = "/ BACKUP / MONGO" Mongo_host = "LocalHost" Mongo_port = "27017" # Si MongoDB est protégé par un mot de passe d'utilisateur. # Définissez Auth_enabled sur 1 # et ajoutez les valeurs Mongo_User et Mongo_Passwd correctement auth_enable. # ou spécifiez les noms de bases de données séparés avec l'espace pour sauvegarder # Bases de données spécifiques uniquement. Database_names = "all" # database_names = 'mydb db2 newdb' ## nombre de jours pour conserver une copie de sauvegarde locale backup_retain_days = 30 ###################### ###################################################### #################################################### ################# # mkdir -p $ db_backup_path / $ aujourd'hui if [$ auth_enabled -eq 1]; alors auth_param = "--Username $ mongo_user --password $ mongo_passwd" fi if [$ database_names = "all"]; puis écho "Vous avez choisi de sauvegarder toutes les bases de données" Mongodump --host $ Mongo_host --port $ Mongo_port $ Auth_Param --out $ db_backup_path / $ aujourd'hui / else echo "Running Backup pour sélectionné pour sélectionné Bases de données "pour db_name dans $ database_names do Mongodump --host $ Mongo_host --port $ Mongo_port --db $ db_name $ Auth_Param --out $ db_backup_path / $ aujourd'hui / Doned $ fi ######## Supprimer les sauvegardes plus anciennes que Backup_Retain_Days Days ####### # dbdeldate = "Date +"% d% b% y "-date = "$ backup_retain_days il y a des jours" "if [ ! -z $ db_backup_path]; alors cd $ db_backup_path si [ ! -z $ dbdeldate] && [-d $ dbDelDate]; puis rm -rf $ dbdeldate fi fi ######################### ########### ##################
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475#!/ bin / bash ############################################### ############################## Script de sauvegarde de la base de données MongoDB ## Écrit par: Rahul Kumar ## URL: https: // tecadmin.net / shell-script-backup-mongodb-database / ## Mise à jour sur: 20 juin 2020 ############################ ############################################ # ° usr / bin: / usr / local / bintoday = 'date + "% d% b% y"' ########################## #################################################### #################################################### ############ al.# Définissez Auth_enabled sur 1 # et ajoutez les valeurs mongo_user et mongo_passwd correctement auth_enable.# ou spécifiez les noms de bases de données séparés avec l'espace pour sauvegarder # Bases de données spécifiques uniquement. Database_names = 'all' # database_names = 'mydb db2 newdb' ## nombre de jours pour conserver une copiage de sauvegarde locale. #################################################### #################################################### ################ mkdir -p $ db_backup_path / $ aujourd'hui auth_param = "" if [$ auth_enabled -eq 1]; alors auth_param = "--Username $ mongo_user --password $ mongo_passwd" fi if [$ database_names = "all"]; puis écho "Vous avez choisi de sauvegarder toutes les bases de données" Mongodump --host $ Mongo_host --port $ Mongo_port $ Auth_Param --out $ db_backup_path / $ aujourd'hui / else echo "Running Backup pour sélectionné pour sélectionné Bases de données "pour db_name dans $ database_names faire mongodump - host $ Mongo_host --port $ Mongo_port --db $ db_name $ auth_param - -out $ db_backup_path / $ today / Donefi ####### Supprimer les sauvegardes plus anciennes que backup_retain_days jours ####### # dbdeldate = 'date + "% d% b% y" - -Date = "$ backup_retain_days il y a des jours" 'if [ ! -z $ db_backup_path]; alors cd $ db_backup_path si [ ! -z $ dbdeldate] && [-d $ dbDelDate]; puis rm -rf $ dbdeldate fiFi ######################### Fin du script ############ #################

Exécuter le script manuellement

Enregistrez le script ci-dessus dans un fichier avec .shot extension. Je veux enregistrer toutes les sauvegardes sous / le répertoire de sauvegarde. Donc placé le script shell dans le même répertoire. Puis définissez l'autorisation d'exécution sur le script.

Chmod + x / Backup / Backup-Mongo.shot  

Exécutez le script shell comme ci-dessous:

bash / sauvegarde / sauvegarde-mongo.shot  

Planifiez le script de sauvegarde MongoDB

Vous pouvez facilement planifier ce script sous Crontab pour sauvegarder régulièrement les bases de données. Pour modifier le crontab, courir crontab -e Commandez et ajoutez le code ci-dessous:

## Base de données de sauvegarde quotidien.shot
12## Base de données de sauvegarde quotidien.shot

Conclure

Dans ce tutoriel, nous avons discuté d'un script shell qui aide à sauvegarder les bases de données MongoDB manuellement. Vous pouvez également planifier des scripts pour sauvegarder les bases de données régulièrement.