!! ultima actualización !!

22/02/2011

jueves 13 de enero de 2011

Python script: backup comprimido de las bases de datos MySQL

El siguiente script permite hacer un backup comprimido de las bases de datos en MySQL a una carpeta local. En la parte variables debemos cambiar los campos con "___&___". El username más común es "root" y el hostname "localhost" pero hay otras opciones. La salida se encontrará en dest_folder con el nombre añomesdia-basedatos.sql.gz

#!/usr/bin/env python
# nombre de fichero:  mysql-backup.py
import os
import time

# variables
username = '___&___'
password = '___&___'
hostname = '___&___'
dest_folder = '___&___'

filestamp = time.strftime('%Y%m%d')

# main code
database_list_command="mysql -u %s -p%s -h %s --silent -N -e 'show databases'" % (username, password, hostna
me)
for database in os.popen(database_list_command).readlines():
        database = database.strip()
        if database == 'information_schema' or database == 'test':
                continue        filename = "%s/%s-%s.sql" % (dest_folder, filestamp, database)
        os.popen("mysqldump -u %s -p%s -h %s -e --opt -c %s | gzip -c > %s.gz" % (username, password, hostna
me, database, filename))

Debemos añadir la siguiente linea al fichero /etc/crontab para que el backup se efectue cada dia a las 0:00:

0    0    *    *    * root python mysql-backup.py

Saludos!