Desenvolvi há mais de 5 anos um script em parceria com o colega Gustavo Sales para realizar backups de diversos bancos de dados em MySQL por mês, dia e hora.
Segue o código:
[python]
#!/usr/bin/python
# -*- coding: iso-8859-1 -*-
#Realiza backups do SGDB Mysql.
#V 001 – 16/06/2013
#Created by Gustavo Sales.
#Adapted by Rodrigo Calado.
import os
import time
#variaveis globais
back_dir = ‘/root/bkpdb/’
log_dir = ‘/var/log/backups_sgdb.log’
#Funcao que realiza um dump das bases de dados
def dumpsgdb(user,host,passwd,*databases):
#databases = [‘mysql’] #lista dos bancos que estarão no backup
mes = back_dir + time.strftime(‘%b’)
if not os.path.exists(mes):
os.mkdir(mes)
for db in databases:
name_bkp = mes + ‘/’ + host + ‘_’ + db + ‘-‘+ time.strftime(‘%d-%m-%Y_%H:%M:%S’) + ‘.sql.gz’
dump_db = "/usr/bin/mysqldump –quick -u %s -h %s -p%s %s | gzip > %s" % (user,host,passwd,db,name_bkp)
if os.system(dump_db) != 0:
msg_log = "echo Erro no backup %s >> %s" % (name_bkp,log_dir)
os.system(msg_log)
break
else:
msg_log = "echo Backup %s realizando com sucesso >> %s" % (name_bkp,log_dir)
os.system(msg_log)
dumpsgdb(‘usuario’,’nome-do-host-do-servidor.com.br’,’senha-do-usuario’,’db1′,’db2′,’db3′,’db4′)
[/python]
Funciona impecavelmente.
2 Comments
Muito bom! Uma vez precisei de algo parecido mas usei uma solução mais robusta que possuía backups diferenciais. Se precisar também, dá uma olhada: https://gist.github.com/kriansa/1327763
Obrigado. Vou estudar esta solução. Abs.