Преди наколко дни си сглобих едно скриптче на Python което да ми архивира и праща базата данни към email-а през определен период от време (cron). Скриптчето е тествано и работи на сървърите на Superhosting.bg

import commands
import sys
import time
import os
import smtplib
from email.MIMEMultipart import MIMEMultipart
from email.MIMEBase import MIMEBase
from email.MIMEText import MIMEText
from email.Utils import COMMASPACE, formatdate
from email import Encoders


db_host = '127.0.0.1'
db_user = "username_for_database"
db_pass = "*******************"

email_user = ""
email_smtp_server = "*.superhosting.bg"
email_from_user = "Yuks <admin@yuksbg.net>"
email_smtp_login_user = "admin@yuksbg.net"
email_smtp_login_pass = "*******"
email_smtp_server_port = "25"
email_smtp_sent_to = ["backUp@yuksbg.net"]

temp_folder = "/home/*****/scripts/backup_db/"


def backup_db(currentDatabase):
    backupFile = temp_folder + currentDatabase + ".sql"
    backupFilePath = temp_folder + currentDatabase + ".sql"
    zipFile = temp_folder + currentDatabase + ".tgz"
    commands.getoutput("mysqldump --host=%s --opt --user=%s --password=%s %s > %s" % (db_host, db_user, db_pass, currentDatabase, backupFilePath))
    os.chdir(temp_folder)
    commands.getoutput("/bin/tar cfz %s %s" % (zipFile, backupFile))
    os.remove(backupFilePath)

def sendMail(to, subject, text, files=[]):
    assert type(to)==list
    assert type(files)==list

    msg = MIMEMultipart()
    msg['From'] = email_from_user
    msg['To'] = COMMASPACE.join(to)
    msg['Date'] = formatdate(localtime=True)
    msg['Subject'] = subject

    msg.attach( MIMEText(text) )

    for file in files:
        part = MIMEBase('application', "octet-stream")
        part.set_payload( open(file,"rb").read() )
        Encoders.encode_base64(part)
        part.add_header('Content-Disposition', 'attachment; filename="%s"'
                       % os.path.basename(file))
        msg.attach(part)

    smtp = smtplib.SMTP(email_smtp_server,email_smtp_server_port)
    smtp.login(email_smtp_login_user, email_smtp_login_pass)
    smtp.sendmail(email_from_user, to, msg.as_string() )
    smtp.close()

def backup_and_send(bdatabase):
    backup_db(bdatabase)
    sendMail(email_smtp_sent_to,"Database archive of " + bdatabase,"Database " + bdatabase,[temp_folder + bdatabase + ".tgz"])
    os.chdir(temp_folder)
    os.remove(bdatabase + ".tgz")
    #print "ok!"

backup_and_send(sys.argv[1])
За да работи коректно е нужно да се променят някои от параметрите и по конкретно
db_host = '127.0.0.1'                               // сървъра на mysql 
db_user = "username_for_database"          // потребителското име за достъп до Mysql
db_pass = "*******************"// паролата за достъп до Mysql

email_user = ""   
email_smtp_server = "*.superhosting.bg"// smtp сървъра за изпращане на mail
email_from_user = "Yuks <[email protected]>"// полето от на изпращания емаил
email_smtp_login_user = "[email protected]"// потребителя за smtp сървъра
email_smtp_login_pass = "*****"//паролата за smtp сървъра
email_smtp_server_port = "25" // порта за smtp сървъра
email_smtp_sent_to = ["[email protected]"]  // email адреса до който ще се праща
temp_folder = "/home/*****/backup_db/"// временна директория с права за писане
Работата със скрипта е по следния начин: python /full/path/to/script/script.py database_to_archive Може да се свали и от тук