Ein Shell -Skript zur Sicherung der MongoDB -Datenbank

Ein Shell -Skript zur Sicherung der MongoDB -Datenbank

Wussten Sie, dass MongoDB-Datenbanken einen integrierten Sicherungsmechanismus haben, der über Shell oder den Mongod-Prozess zugänglich ist? Der Mongod -Prozess macht jedes Mal automatisch einen Schnappschuss. Diese verschiedenen Zustände sind: Starten, Stoppen, Aufrüsten und Wiederherstellen nach einem Absturz. Diese Schnappschüsse reichen jedoch nicht aus, wenn katastrophale Fehler wie Festplattenkorruption oder Naturkatastrophe. Um Ihre wertvollen Daten vor solchen Bedrohungen zu schützen, ist es ratsam, eine automatisierte Sicherungsstrategie für Ihre MongoDB -Datenbanken zu implementieren.

In diesem Artikel werden mithilfe eines einfachen Shell -Skripts automatisierte Sicherungen für Ihre MongoDB -Datenbanken erstellt.

Shell -Skript für MongoDB Backup

Das Shell -Skript für MongoDB -Datenbanksicherung ist auf GitHub verfügbar. Sie können den folgenden Link verwenden, um Zugriff auf das Shell -Skript zu erhalten.

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

Alternativ können Sie das folgende Skript kopieren und auf Ihrem Linux -System speichern.

#!/bin/bash ##################################################################################################### zu erhalten ######################### ## ## Mongodb Datenbank Backup -Skript ## geschrieben von: rahul kumar ## URL: https: // tecadmin.net/ shell-script-backup-mongodb-database/ ## update on: 20. Juni, 2020 ################################################################################################ zuusch ##########################################################################export path =/bin:///////// usr/bin:/usr/local/bin heute ######################################################################################################################## zurild ####################################################################################################################### zu erhalten ############## db_backup_path = "/backup/mongo" mongo_host = "localhost" mongo_port = "27017"#Wenn MongoDB mit einem Benutzernamenkennwort geschützt ist. # Setzen Sie Auth_Enabled auf 1 # und fügen Sie mongo_user- und mongo_passwd -Werte korrekt auth_enable = 0 mongo_user = "mongo_passwd =" # Setzen. # oder geben Sie Datenbankennamen an, die mit Space to Sicherung # nur spezifische Datenbanken getrennt sind. Database_names = "All"#Datenbank_Names = 'mydb db2 newdb' ## Anzahl der Tage, um ein lokales Backup -Kopie -Backup_retain_days = 30 ############################################################ zu erhalten ########################################################################################################################################################################## zurild ####################################################################################################################### zu erhalten ################# mkdir -p $ db_backup_path/$ Today if [$ auth_enabled -eq 1]; dann 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 Datenbanken "Für db_name in $ database_names do mongodump -host $ mongo_host --port $ mongo_port -db $ db_name auth_param -out db_backup_path/ $ $ $ $ $ $ $ $ $ $ fi ######## Entfernen Sie Backups älter als backup_retain_days dageDate = "$ backup_retain_days Tage" "if [ ! -z $ db_backup_path]; Dann CD $ db_backup_path if [ ! -z $ dbdeldate] && [-d $ dbdeldate]; Dann rm -rf $ dbdeldate fi fi ############################################################################################ zu erhalten ###########################ib
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475#!/bin/bash ##################################################################################################### zu erhalten ##############################Mongodb Datenbank Backup -Skript ## geschrieben von: rahul kumar ## URL: https: // tecadmin.net/shell-script-backup-mongodb-database/## update on: 20. Juni, 2020 ################################################################################# zu erhalten ##########################################################################export path =/bin:///////// usr/bin:/usr/local/bintoday = 'Date +"%d%b%y"' ######################################################################################## zuichter ####################################################################################################################### zu erhalten ####################################################################################################################### zu erhalten ##############DB_BACKUP_PATH = '/BACKUP/MONGO'MONGO_HOST =' localhost'mongo_port = '27017'#Wenn MongoDB mit einem Benutzernamenkennwort geschützt ist.# Setzen Sie Auth_Enabled auf 1 # und fügen Sie mongo_user- und mongo_passwd -Werte korrekt auth_enable = 0mongo_user = "mongo_passwd =" # Setzen.# oder geben Sie Datenbankennamen an, die mit Space to Sicherung # nur spezifische Datenbanken getrennt sind. Database_names = 'All'#Datenbank_Names = 'mydb db2 newdb' ## Anzahl der Tage, um ein lokales Backup Copybackup_retain_days = 30 ######################################################### zu erhalten ####################################################################################################################### zu erhalten ####################################################################################################################### zu erhalten ################ mkdir -p $ db_backup_path/$ Today auth_param = "if [$ auth_enabled -eq 1]; dann 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 Datenbanken "für db_name in $ database_names do mongodump -host $ mongo_host --port $ mongo_port -db $ db_name $ auth_param -out $ db_backup_path/ $ Today/ Donefi ######## Entfernen Sie die Sicherungen älter als backup_retain_days Tage ########DBDeldate = 'Datum +"%d%y" - -date = "$ backup_retain_days Tage" 'if [ ! -z $ db_backup_path]; Dann CD $ db_backup_path if [ ! -z $ dbdeldate] && [-d $ dbdeldate]; dann rm -rf $ dbdeldate fifi ######################################## #########################ib

Skript manuell ausführen

Speichern Sie das obige Skript in einer Datei mit .Sch Verlängerung. Ich möchte alle Backups unter /im Sicherungsverzeichnis speichern. So platzierte das Shell -Skript in das gleiche Verzeichnis. Legen Sie dann die Berechtigung aus, die Berechtigung auf dem Skript auszuführen.

Chmod +X /Backup /Backup-Mongo.Sch  

Führen Sie das Shell -Skript wie unten aus:

Bash /Backup /Backup-Mongo.Sch  

Planen Sie das MongoDB -Sicherungsskript

Sie können dieses Skript einfach unter Crontab planen, um Datenbanken regelmäßig zu sichern. Um den Crontab zu bearbeiten, laufen Sie Crontab -e Befehl und fügen Sie den folgenden Code an:

## Backup-Datenbank täglich um 02:00 Uhr 0 2 * * * /Backup /Mongo-Backup.Sch
12## Backup-Datenbank täglich um 02:00 Uhr 2 * * * /Backup /Mongo-Backup.Sch

Einpacken

In diesem Tutorial haben wir ein Shell -Skript besprochen, das dazu beiträgt, MongoDB -Datenbanken manuell zu sichern. Außerdem können Sie Skripte planen, um Datenbanken regelmäßig zu sichern.