Skrip shell untuk mencadangkan database MongoDB

Skrip shell untuk mencadangkan database MongoDB

Tahukah Anda bahwa database MongoDB memiliki mekanisme cadangan bawaan yang dapat diakses melalui shell atau proses Mongod? Proses Mongod secara otomatis mengambil snapshot setiap kali transisi database ke keadaan lain. Status yang berbeda ini adalah: Memulai, Berhenti, Meningkatkan, dan Memulihkan Setelah Kecelakaan. Namun, snapshot ini tidak akan cukup jika terjadi kegagalan bencana seperti korupsi disk atau bencana alam. Untuk melindungi data berharga Anda dari ancaman seperti itu, disarankan untuk mengimplementasikan strategi cadangan otomatis untuk database MongoDB Anda.

Di artikel ini, kami akan membahas cara membuat cadangan otomatis untuk database MongoDB Anda menggunakan skrip shell sederhana.

Skrip shell untuk cadangan mongodb

Skrip shell untuk cadangan basis data mongoDB tersedia di github. Anda dapat menggunakan tautan di bawah ini untuk mendapatkan akses skrip shell.

https: // github.com/tecrahul/scripts/blob/master/cadangan-mongo.SH

Atau, Anda dapat menyalin skrip di bawah ini dan menyimpannya di sistem Linux Anda.

#!/bin/bash ############################################## ######################### ## ## mongoDb basis data skrip cadangan ## ditulis oleh: Rahul kumar ## url: https: // tecadmin.Net/ Shell-Script-Backup-MongoDB-Database/ ## Pembaruan pada: 20 Juni 2020 ## ########################### ########################################## Path ekspor =/bin:/ usr/bin:/usr/lokal/bin hari ini = "Tanggal +"%D%B%y "" ########################## ################################################### ################################################### ############## db_backup_path = "/cadangan/mongo" mongo_host = "localhost" mongo_port = "27017"#Jika MongoDB dilindungi dengan kata sandi nama pengguna pengguna pengguna pengguna pengguna. # Atur auth_enabled ke 1 # dan tambahkan nilai mongo_user dan mongo_passwd dengan benar auth_enabled = 0 mongo_user = "mongo_passwd =" # set database_names ke "semua" untuk mencadangkan semua basis data. # atau tentukan nama database yang dipisahkan dengan ruang untuk mencadangkan # basis data tertentu saja. Database_names = "semua"#database_names = 'mydb db2 newdb' ## Jumlah hari untuk menjaga cadangan cadangan lokal backup_retain_days = 30 ##################### #################################################### ################################################### ################ mkdir -p $ db_backup_path/$ hari ini if [$ auth_enabled -eq 1]; kemudian auth_param = "--username $ mongo_user --password $ mongo_passwd" fi if [$ database_names = "all"]; Kemudian echo "Anda telah memilih untuk mencadangkan semua database" MongoDump --host $ mongo_host --port $ mongo_port $ auth_param - -out $ db_backup_path/ $ hari ini/ else "berjalan cadangan untuk dipilih untuk dipilih Databases "untuk db_name di $ database_names do mongoDump --host $ mongo_host --port $ mongo_port --db $ db_name $ auth_param -out $ db_backup_path/ $ auth_param -out $ db_backup_path/ $ fi ######### Hapus cadangan lebih tua dari backup_retain_days hari ######## dbdeldate = "date +"%d%b%y " -date = "$ backup_retain_days hari yang lalu" "jika [ ! -z $ db_backup_path]; lalu cd $ db_backup_path if [ ! -z $ dbDeldate] && [-d $ dbDeldate]; lalu rm -rf $ dbDeldate fi fi ######################## "skrip ################# ##################
123456789101112131415161718192021222324252627282930313233435363737383940466666664874875055555515155354566666487495.5#!/bin/bash ############################################## ############################ Ubase mongoDb skrip cadangan basis data ## ditulis oleh: Rahul kumar ## url: https: // tecadmin.Net/Shell-Script-Backup-MongoDB-Database/## Pembaruan pada: 20 Juni 2020 ############################ ########################################## Path ekspor =/bin:/ usr/bin:/usr/local/bintoday = 'tanggal +"%d%b%y"' ########################## ################################################### ################################################### ############# db_backup_path = '/cadangan/mongo'mongo_host =' localhost'mongo_port = '27017'#Jika MongoDB dilindungi dengan kata sandi nama pengguna pengguna pengguna.# Atur auth_enabled ke 1 # dan tambahkan nilai mongo_user dan mongo_passwd dengan benar auth_enabled = 0mongo_user = "mongo_passwd =" # set database_names ke "semua" untuk mencadangkan semua database = " # set.# atau tentukan nama database yang dipisahkan dengan ruang untuk mencadangkan # basis data tertentu saja. Database_names = 'all'#database_names = 'mydb db2 newdb' ## Jumlah hari untuk menjaga cadangan cadangan lokal_retail_days = 30 ###################### ################################################### ################################################### ################ mkdir -p $ db_backup_path/$ hari ini auth_param = "" if [$ auth_enabled -eq 1]; kemudian auth_param = "--username $ mongo_user --password $ mongo_passwd" fi if [$ database_names = "all"]; Kemudian echo "Anda telah memilih untuk mencadangkan semua database" MongoDump --host $ mongo_host --port $ mongo_port $ auth_param - -out $ db_backup_path/$ hari ini/else "berjalan cadangan untuk dipilih untuk dipilih database "untuk db_name di $ database_names do mongoDump --host $ mongo_host --port $ mongo_port --db $ db_name $ auth_param -out $ db_backup_path/ $ today/ donefi ######### melepaskan cadangan lebih tua dari backup_retain_days hari ######## dbdeldate = 'tanggal +"%d%b%y" - -date = "$ backup_retain_days hari yang lalu" 'jika [ ! -z $ db_backup_path]; lalu cd $ db_backup_path if [ ! -z $ dbDeldate] && [-d $ dbDeldate]; lalu rm -rf $ DBDelDate FIFI ######################## Kasut skrip ############### #################

Jalankan skrip secara manual

Simpan skrip di atas dalam file dengan .SH perpanjangan. Saya ingin menyimpan semua cadangan di bawah /direktori cadangan. Jadi menempatkan skrip shell di direktori yang sama. Kemudian atur izin eksekusi pada skrip.

chmod +x /cadangan /cadangan-mongo.SH  

Jalankan skrip shell seperti di bawah ini:

Bash /Backup /Backup-Mongo.SH  

Jadwalkan skrip cadangan mongodb

Anda dapat dengan mudah menjadwalkan skrip ini di bawah crontab ke database cadangan secara teratur. Untuk mengedit crontab, jalankan crontab -e Perintah dan tambahkan kode di bawah ini:

## Database Cadangan Harian pada pukul 02:00 0 2 * * * * /Backup /Mongo-Backup.SH
12## Database Cadangan Harian pada pukul 02:00 AM0 2 * * * /Backup /Mongo-Backup.SH

Bungkus

Dalam tutorial ini, kami telah membahas skrip shell yang membantu mencadangkan database MongoDB secara manual. Anda juga dapat menjadwalkan skrip ke database cadangan secara teratur.