Capa -> Segurança -> Backup -> Script em python que realiza backup de vários bancos de dados em SGBD MySQL

Script em python que realiza backup de vários bancos de dados em SGBD MySQL

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:

#!/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')

Funciona impecavelmente.

Sobre Rodrigo Calado

Rodrigo Calado é graduado em Gestão da Tecnologia da Informação, pós-graduando em Governança de TI pela Universidade Católica de Brasília, co-fundador do Gran Cursos Online e da GG Educacional e pesquisador. Possui convicta paixão pela área de infraestrutura, ensino a distância, concursos públicos e empreendedorismo.

2 comentários

  1. 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

Deixe uma resposta

O seu endereço de email não será publicado. Required fields are marked *

*

Scroll To Top