Descripción: Script en python que permite hacer un respaldo de una base de datos que reside en PostgreSql
Este archivo se ejecuta de la siguiente manera:
$ python respaldo.py
Para Restaurar la Base de Datos: -d Nombre Base Datos -U Usuario
pg_restore -d db -U postgres db.tar
#!/usr/bin/env python import time import datetime import os def nombre_archivo(): ''' Permite Crear el nombre del archivo que tendra el respaldo tomando como nombre la fecha dd-mm-aa y la hora hh:mm:ss Quedando de la siguiente manera suponiendo que fue realizado en la siguiente fecha (24/12/2011 10:30:00) , el resultado seria el siguiente: 24_12_2011_103000 t = time.localtime() dia = t.tm_mday mes = t.tm_mon ano = t.tm_year hora = t.tm_hour minutos = t.tm_min seg = t.tm_sec nombre = '%s-%s-%s_%s:%s:%s' % (dia, mes, ano, hora, minutos, seg) ''' t = datetime.datetime.now() nombre = t.strftime('%d_%m_%Y_%I%M%S') return nombre def leer_config(): ''' Toma los valores del archivo de configuracion llamado config.cfg y los guarda en un diccionario {clave:valor} el cual retorna al finalizar. Informacion del archivo config.cfg: ipservidor=10.121.6.4 nombrebasedatos=bdhcoromoto usuariobasedatos=admhc rutarespaldo=/media/respaldo nombrearchivo=pg_bdhcoromoto_ ''' diccionario = {} ruta = "/home/cgarcia/desarrollo/python/respaldo-potgres/config/config.cfg" for linea in file(ruta): if linea[0] != '#': separar = linea.split('=') if len(separar) > 1: dicc_clave = separar[0] dicc_valor = separar[1].rstrip() # rstrip elimina el retor d c diccionario[dicc_clave] = dicc_valor return diccionario def respaldo_pg(): ''' Toma los parametros del diccionario con el cual se arma el nombre y la ruta que tendra el archivo del respaldo asi como tambien arma el comando final a ejecutar ''' diccio = leer_config() dic_ipservidor = diccio['ipservidor'] dic_nombrebasedatos = diccio['nombrebasedatos'] dic_usuariobasedatos = diccio['usuariobasedatos'] dic_rutarespaldo = diccio['rutarespaldo'] dic_nombrearchivo = diccio['nombrearchivo'] archivofinal = os.path.join(dic_rutarespaldo, dic_nombrearchivo + \ nombre_archivo() + '.tar') comando = 'pg_dump' ''' -Parametros a pasar(Estos tambien se pudieran colocar dentro del archivo config.cfg), - pero por ahora lo dejaremos asi directo como texto -Ft Significa Format tar -b Inclute campos Blobs -h es el host o la ip del servidor -W password ''' comando_a_ejecutar = '%s -Ft -b -h %s %s -U %s > %s' % \ (comando, dic_ipservidor, dic_nombrebasedatos, dic_usuariobasedatos,\ archivofinal) return comando_a_ejecutar if __name__ == '__main__': print 'Espere un momento ejecutando Proceso de Respaldo...' respaldar = respaldo_pg() print respaldar os.system(respaldar) print '*** Respaldo Realizado con Exito ***'
0 comentarios:
Publicar un comentario