#!/usr/bin/perl -w # Title : mysql-backup.pl # Function : dump all mysql databases in sepperatefiles with timestamp # Author : Pascal Schiks (C) 2007 GNU/GPL # [Pascal 22-Feb-2007] Creation use strict; use Date::Manip qw(ParseDate UnixDate); use DBI; # Config my $DEBUG=0; my $version="v1.0"; my $db_host="localhost"; my $db_user="root"; my $db_pass=""; my $db_name="mysql"; my $datadumpdir="datadump"; my $mysqldump="mysqldump -u $db_user --password=$db_pass"; my $gzip="gzip"; my $date=UnixDate("now","%Y-%m-%d"); # Main print "Running : MySQL-Backup $version for date : $date\n"; print "Debug mode, nothing happens\n" if($DEBUG); my $dsn = "DBI:mysql:$db_name:$db_host"; my $dbh = DBI->connect($dsn,$db_user,$db_pass); if($dbh) { my $sth=$dbh->prepare("show databases"); $sth->execute(); while(my $database=$sth->fetchrow()) { my $dumpfile="$database-$date.sql.gz"; my $dumpcmd="$mysqldump $database | $gzip > $datadumpdir/$dumpfile"; print "$dumpfile\n"; unless($DEBUG) { system($dumpcmd) } else { print "system : $dumpcmd\n"; } } $dbh->disconnect(); } else { print "Error, Could not connect to mysql server\n"; }