#!/usr/bin/perl

## DB info struct
##{ host, db, username, password}
@DBsToBackup =(
##host 1
['localhost', 'testlink', 'root', 'testlink']
##host 2
#['192.168.0.2', 'database5', 'username', 'password']
);

$backupdir = 'C:\\TestlinkDBBackup';

print "Starting dump of databases...\n\n";

foreach $dbinfo (@DBsToBackup){
($Second, $Minute, $Hour, $Day, $Month, $Year, $WeekDay, $DayOfYear, $IsDST) = localtime(time) ;
$Year += 1900 ; $Month += 1;
$outputFilename = sprintf("%04d%02d%02d[%02d%02d%02d]", $Year, $Month, $Day, $Hour, $Minute, $Second ) . "_$$dbinfo[1]_.sql.gz";


print "dumping: $$dbinfo[0] / $$dbinfo[1]...\n";
$ex = "\"C:\\xampp\\mysql\\bin\\mysqldump\" --user=$$dbinfo[2] --password=$$dbinfo[3] --host=$$dbinfo[0] --add-drop-database --add-drop-table $$dbinfo[1] | gzip > ${backupdir}\\$outputFilename";

print $ex ."\n\n";
print `$ex`;
}

print "DONE dumping\n";

print "deleting dumps older than 14 days...\n";
#print `forfiles -P $backupdir -D -14 -C "cmd /c del @path\@file" /S`;
#$delf=`forfiles -P $backupdir /D -14 /C "cmd /c del @path\@file" /S`;
#print "$delf\n";
print "script finished\n";