Script python para backup de banco de dados MySQL

Script python para backup de banco de dados MySQL

Este é um script python simples para fazer backup de bancos de dados MySQL usando o utilitário mysqldump. Este script foi testado com o Python 3.5 e 2.7.15.

Como usar o script

Este script é muito fácil de usar, baixar ou copiar este script no seu sistema local e executá -lo com Python. Este script é capaz de receber vários bancos de dados

Backup de banco de dados único: Se você quiser usar este script para fazer backup de banco de dados único, edite o script como abaixo. Por exemplo, o nome do banco de dados é mydb.

 Db_name = 'mydb' 

Vários bancos de dados backup: Para fazer vários bancos de dados backup, crie um arquivo de texto como /backup /dbnames.txt e adicione bancos de dados nomes um por linha como abaixo

# gato /backup /dbnames.TXT Database1 MyDB 

E adicione este arquivo ao script, como abaixo.

 Db_name = '/backup/dbnames.TXT' 

Altere o local de backup: Você pode mudar abaixo da variável para alterar a localização do caminho de backup.

 Backup_path = '/backup/dbbackup/' 

Script de backup python mysql

Clique aqui ou use o comando abaixo para baixar o script do github ou você pode simplesmente copiar o script abaixo.

#!/usr/bin/python ############################################### ################Este script Python é usado para o Backup de banco de dados MySQL#usando o mysqldump e o utilitário tar. # # Escrito por: Rahul Kumar # Site: http: // tecadmin.Net # Data criada: 03 de dezembro de 2013 # Última modificação: 17 de agosto de 2018 # Testado com: Python 2.7.15 e Python 3.5 # Revisão de script: 1.4####################################################d ##########Importar as bibliotecas python necessárias importam o sistema de importação de tempo importar o datetime importar tubos#detalhes do banco de dados mysql. Certifique -se de abaixo o usuário ter privilégios suficientes para receber bancos de dados. # Para receber vários bancos de dados backup, crie qualquer arquivo como /backup /dbnames.TXT e CUST Bathabases Names One em cada linha e atribuído à variável db_name. Db_host = 'localhost' db_user = 'root' db_user_password = '_mysql_user_password_' #db_name = '/backup/dbnameslist.txt 'db_name =' db_name_to_backup 'backup_path ='/backup/dbbackup ' # Obtendo o tempo atual para criar a pasta de backup separada como "20180817-123433". DateTime = Time.strftime ('%y%m%d-%h%m%s') TodaybackUppath = backup_path + '/' + DateTime # Verificação. Se não existir, irá criar. Tente: OS.Stat (Todaybackuppath), exceto: OS.MKDIR (Todaybackuppath) # Código para verificar se você quiser fazer backup de banco de dados único ou backups de ASSINE. Imprima ("Verificando o arquivo de nomes dos bancos de dados.") Se os OS.caminho.existe (db_name): file1 = aberto (db_name) multi = 1 print ("arquivo de dados de dados encontrado ...") print ("backup inicial de todos os DBs listados no arquivo" + db_name) else: print ("o arquivo de dados não encontrado ...") print ("Backup inicial do banco de dados" + db_name) multi = 0 # Iniciando processo de backup de banco de dados real. Se multi: in_file = aberto (db_name, "r") flength = len (in_file.readLines ()) in_file.Close () p = 1 dbfile = aberto (db_name, "r") enquanto p " + tubos.Citação (Todaybackuppath) + "/" + db + ".SQL "OS.sistema (dumpcmd) gzipcmd = "gzip" + tubos.Citação (Todaybackuppath) + "/" + db + ".SQL "OS.sistema (gzipcmd) p = p + 1 dbfile.close () else: db = db_name dumpcmd = "mysqldump -h" + db_host + "-u" + db_user + "-p" + db_user_password + "" "db +"> " + tubos.Citação (Todaybackuppath) + "/" + db + ".SQL "OS.sistema (dumpcmd) gzipcmd = "gzip" + tubos.Citação (Todaybackuppath) + "/" + db + ".SQL "OS.System (GZIPCMD) print ("") Print ("Script de backup concluído") Print ("Seus backups foram criados em '" + Todaybackuppath + "' Diretório")
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182#!/usr/bin/python ############################################### ################# Este script Python é usado para o Backup de banco de dados MySQL#usando o mysqldump e o utilitário tar.## Escrito por: Rahul Kumar# Site: http: // Tecadmin.Net# Data criada: 03 de dezembro de 2013# Última modificação: 17 de agosto de 2018# Testado com: Python 2.7.15 e Python 3.5# Revisão de script: 1.4#Não ###########Importar as bibliotecas Python necessárias importam osimport timeimport datetimeimport pipes#mysql bancos de dados Detalhes para qual backup a ser feito. Certifique -se de abaixo o usuário ter privilégios suficientes para receber bancos de dados.# Para receber vários bancos de dados backup, crie qualquer arquivo como /backup /dbnames.TXT e CUST Bathabases Names One em cada linha e atribuído à variável db_name. Db_host = 'localhost' db_user = 'root'db_user_password =' ​​_mysql_user_password _ '#db_name ='/backup/dbnameslist.txt'db_name = 'db_name_to_backup'backup_path ='/backup/dbbackup ' # Obtendo o tempo atual para criar a pasta de backup separada como "20180817-123433".DateTime = Time.strftime ('%y%m%d-%h%m%s') TodaybackUppath = backup_path + '/' + DateTime # Verificação. Se não existir, irá criar.Tente: OS.Stat (Todaybackuppath), exceto: OS.MKDIR (Todaybackuppath) # Código para verificar se você quiser fazer backup de banco de dados único ou backups de ASSINE.Imprima ("Verificando o arquivo de nomes dos bancos de dados.") Se os OS.caminho.existe (db_name): file1 = aberto (db_name) multi = 1 print ("arquivo de dados de dados encontrado ...") print ("backup inicial de todos os DBs listados no arquivo" + db_name) else: print ("o arquivo de dados não encontrado ...") print ("Backup inicial do banco de dados" + db_name) multi = 0 # Iniciando processo de backup de banco de dados real.Se multi: in_file = aberto (db_name, "r") flength = len (in_file.readLines ()) in_file.Close () p = 1 dbfile = aberto (db_name, "r") enquanto p <= flength: db = dbfile.readline() # reading database name from file db = db[:-1] # deletes extra line dumpcmd = "mysqldump -h " + DB_HOST + " -u " + DB_USER + " -p" + DB_USER_PASSWORD + " " + db + " > " + tubos.Citação (Todaybackuppath) + "/" + db + ".SQL "OS.sistema (dumpcmd) gzipcmd = "gzip" + tubos.Citação (Todaybackuppath) + "/" + db + ".SQL "OS.sistema (gzipcmd) p = p + 1 dbfile.close () else: db = db_name dumpcmd = "mysqldump -h" + db_host + "-u" + db_user + "-p" + db_user_password + "" "db +"> " + tubos.Citação (Todaybackuppath) + "/" + db + ".SQL "OS.sistema (dumpcmd) gzipcmd = "gzip" + tubos.Citação (Todaybackuppath) + "/" + db + ".SQL "OS.System (GZIPCMD) print ("") Print ("Script de backup concluído") Print ("Seus backups foram criados em '" + Todaybackuppath + "' Diretório")

Execute o script python

Depois de baixar o script, faça o script executável usando o seguinte comando

chmod +x dbbackup.py 

e execute este script como abaixo

python2 dbbackup.py 

Você também pode agendar este script para ser executado diariamente em intervalo regular usando Crontab. Adicione o comando abaixo em Crontab.

0 2 * * */usr/bin/python dbbackup.py 

Leia mais sobre Crontab em 20 exemplos úteis para agendar empregos.

Obrigado! Para usar este script. Se você tiver alguma sugestão para o meu script, fique à vontade para me enviar um e -mail ou colocar um comentário abaixo. Seu feedback me ajudará a melhorar.