Ein Shell -Skript zur Sicherung der MongoDB -Datenbank
- 3349
- 801
- Lana Saumweber
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 ###########################ib123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 | #!/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:
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.
- « So installieren Sie Zabbix Server 5.0 auf Ubuntu 20.04
- So installieren Sie VirtualBox 6.1 auf Ubuntu 20.04 »