MySQL Backup is written in Perl. It uses mysqlshow to grab the database names and "show tables" to grab the table names for a user's account, and then uses mysqldump to save the data in a subdirectory named in the script. It then tars and gzips the files, using the date and time for the file name. It can be run from cron on a daily basis. It now removes old files and has an option to email the gzip file to an admin. It also has options to use "select data into outfile" or a regular "select" for users who can't use mysqldump. (Some hosts don't allow that.)
