Um script de shell para fazer backup do banco de dados MongoDB

Um script de shell para fazer backup do banco de dados MongoDB

Você sabia que os bancos de dados MongoDB têm um mecanismo de backup interno que é acessível via shell ou o processo MongoD? O processo MongoD leva automaticamente um instantâneo toda vez que um banco de dados transita para outro estado. Esses estados diferentes são: iniciar, parar, atualizar e se recuperar após um acidente. No entanto, esses instantâneos não serão suficientes em caso de falhas catastróficas, como corrupção de disco ou desastre natural. Para proteger seus dados valiosos de tais ameaças, é aconselhável implementar uma estratégia de backup automatizada para seus bancos de dados do MongoDB.

Neste artigo, discutiremos como criar backups automatizados para seus bancos de dados mongodb usando um script de shell simples.

Script de shell para backup de mongodb

O script shell para backup de banco de dados MongoDB está disponível no GitHub. Você pode usar o link abaixo para obter acesso ao script do shell.

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

Como alternativa, você pode copiar o script abaixo e salvá -lo em seu sistema Linux.

#!/Bin/Bash ################################################## ######################### ## ## script de backup do banco de dados MongodB ## escrito por: rahul kumar ## url: https: // tecadmin.net/ shell-script-backup-mongodb-database/ ## Atualização em: 20 de junho de 2020 ## ############################# ############################################### N# exportar caminho =/bin:/ usr/bin:/usr/local/bin Today = "date +"%d%b%y "" ########################### #######Omas ########Omas ############## db_backup_path = "backup/mongo" mongo_host = "localhost" mongo_port = "27017"#se o mongodb estiver protegido com uma senha de nome de usuário senha. # Definir auth_enabled para 1 # e adicionar valores mongo_user e mongo_passwd corretamente autent_enabled = 0 mongo_user = "mongo_passwd =" # defina banco de dados_names para "todos" para fazer backup de todos os bancos de dados. # ou especificar bancos de dados nomes separados com espaço para fazer backup # apenas bancos de dados específicos. Database_names = "all"#database_names = 'mydb db2 newdb' ## Número de dias para manter um backup local backup backup_retain_days = 30 ##################################################### ####################################### N###############################dup #######Omas ########Omas ################# mkdir -p $ db_backup_path/$ Today se [$ auth_enabled -eq 1]; então auth_param = "--username $ Mongo_user - -assasswor Então echo "Você escolhe fazer backup de todos os bancos de dados" MongoDump - -host $ Mongo_host --port $ Mongo_port $ auth_param -out $ db_backup_path/ $ Today/ else Echo bancos de dados "para db_name em $ database_names do mongodump - -host $ Mongo_host --port $ mongo_port -db $ db_name $ auth_param -out $ dbbackup_path/ $ Tada fi ########Remova backups mais antigos que backup_retain_days dias #######d dbdeldate = "date +"%d%b%y " -date = "$ backup_retain_days dias atrás" "se [ ! -z $ db_backup_path]; Então CD $ db_backup_path se [ ! -z $ dbdeldate] && [-d $ dbdeldate]; Então rm -rf $ dbdeldate fi fi ##########################d final do script ############# #################
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475#!/Bin/Bash ################################################## #############################M MONGODODB Script de backup do banco de dados ## Escrito por: Rahul Kumar ## URL: https: // tecadmin.net/shell-script-backup-mongodb-database/## Atualização em: 20 de junho de 2020 ###############################p ############################################### N# exportar caminho =/bin:/ usr/bin:/usr/local/bintoday = 'date +"%d%b%y"' ############################d ########Omas ########Omas ############# db_backup_path = '/backup/mongo'mongo_host =' localhost'mongo_port = '27017'#se mongodb estiver protegido com uma senha de nome de usuário senha.# Definir auth_enabled para 1 # e adicionar valores mongo_user e mongo_passwd corretamente autent_enabled = 0mongo_user = "mongo_passwd =" # defina banco de dados_names para "todos" para fazer backup de todos os bancos de dados.# ou especificar bancos de dados nomes separados com espaço para fazer backup # apenas bancos de dados específicos. Database_names = 'all'#database_names = 'mydb db2 newdb' ## número de dias para manter um backup local copybackup_retain_days = 30 ##################################################d) ########Omas ########Omas ################ mkdir -p $ db_backup_path/$ Today auth_param = "" se [$ auth_enabled -eq 1]; então auth_param = "--username $ Mongo_user - -assasswor Então echo "Você escolhe fazer backup de todos os bancos de dados" MongoDump - -host $ Mongo_host --port $ Mongo_port $ auth_param -out $ db_backup_path/$ Today/else Echo bancos de dados "para db_name em $ database_names do mongodump - -host $ Mongo_host --port $ Mongo_port - -db $ db_name $ auth_param -out $ db_backup_path/ $ Today/ donefi ######## Remova os backups mais antigos do backup_retain_days dias ######## dbdeldate = 'date +"%d%y" - -date = "$ backup_retain_days dias atrás" 'se [ ! -z $ db_backup_path]; Então CD $ db_backup_path se [ ! -z $ dbdeldate] && [-d $ dbdeldate]; Então rm -rf $ dbdeldate fifi ###########################d final do script ############## ################

Execute o script manualmente

Salve o script acima em um arquivo com .sh extensão. Eu quero salvar todos os backups sob /o diretório de backup. Então colocou o script do shell no mesmo diretório. Em seguida, defina a permissão de execução no script.

Chmod +X /Backup /Backup-Mongo.sh  

Execute o script do shell como abaixo:

Bash /Backup /Backup-Mongo.sh  

Agendar um script de backup do MongoDB

Você pode agendar facilmente este script sob Crontab para fazer bancos de dados regularmente. Para editar o Crontab, corra Crontab -e comando e anexe o código abaixo:

## banco de dados de backup diariamente às 02:00 0 2 * * * /backup /mongo-backup.sh
12## banco de dados de backup diariamente às 02:00 2 * * * /backup /backup.sh

Embrulhar

Neste tutorial, discutimos um script de shell que ajuda a fazer backup de bancos de dados do MongoDB manualmente. Além disso, você pode agendar scripts para fazer backup de bancos de dados regularmente.