#!/usr/bin/perl use DBI; $username = "yourusername"; $password = "yourpassword"; $host = "localhost"; $path = "/home/$username/dbs/"; $file = "/home/$username/dbs.tar.gz"; $dbh = DBI->connect("DBI:mysql:host=$host",$username,$password) or die "Bad login info"; $sth = $dbh->prepare("show databases like \'$username\_%\'"); $sth->execute(); while(@row = $sth->fetchrow_array()) { if(!$row[0]) { die "No dbs to backup!"; } if(!-e $path) { mkdir $path; } foreach $db (@row) { system("mysqldump --opt --user=$username --password=$password $db > /home/$username/dbs/$db\.sql"); } } $sth->finish(); $dbh->disconnect(); if(-e $file) { unlink $file; } system("tar -cf dbs.tar dbs"); system("gzip dbs.tar"); system("rm -rf $path"); exit;