I needed a place to host my scripts, so I opened an account on GitHub. If you are unaware of what GitHub is, its a great place to publish code to the public by using Git; they also offer private hosting for a fee. Even if you do not have a need for this I recommend looking through the site as its a great place to view open source projects.

There are a lot of examples and scripts out on the Internet to automate MySQL backups but not a whole lot written in Python. This was developed to use in a MySQL replication environment and should be run on the slave server. This is an optimal solution as backup’s can run without affecting production. The script dumps each database individually, calculates the size of the sql backup, tarball them up, and emails a log when its done.

To run this the MySQLdb module must be installed on the server. You should also create a user specifically designed to run backups. You can effectively do this by running:

    grant select, lock tables on *.* to [email protected]’localhost’ identified by ‘password’;

The password is stored in base64 format. To encrypt the password for use in the script, run the following command within the Python terminal:

    >>> from base64 import b64encode as encode

    >>> encode(“password”)

    ‘cGFzc3dvcmQ=’

Though this is not the most secure way to encrypt a password to use within a script, it will prevent shoulder surfers.


Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.