66 lines
1.5 KiB
PHP
66 lines
1.5 KiB
PHP
<?php
|
|
ini_set('display_errors', 1);
|
|
ini_set('display_startup_errors', 1);
|
|
error_reporting(E_ALL);
|
|
|
|
$dumps_path = 'dumps/';
|
|
if(file_exists($dumps_path))
|
|
{
|
|
array_map( 'unlink', array_filter((array) glob($dumps_path.'*') ) );
|
|
}
|
|
else
|
|
{
|
|
mkdir('dumps');
|
|
}
|
|
|
|
read credential file
|
|
$credential_file = fopen("credentials.php", "r") or die("Unable to open file!");
|
|
//should priovide the following variables:
|
|
// $db_host = 'host';
|
|
// $db_user = 'user';
|
|
// $db_pass = "pw";
|
|
|
|
if ($db_host == NULL || $db_user == NULL || $db_pass == NULL) {
|
|
die("Please provide credentials in credentials.php");
|
|
}
|
|
|
|
$db_conn = new mysqli($db_host, $user, $pass);
|
|
|
|
$result = mysqli_query($db_conn,"SHOW DATABASES");
|
|
while ($row = mysqli_fetch_array($result)) {
|
|
|
|
if($row[0] == 'information_schema' || $row[0] == 'performance_schema')
|
|
{
|
|
continue;
|
|
}
|
|
|
|
$database = $row[0];
|
|
$dir = dirname(__FILE__) . '/'.$dumps_path.$database.'.sql';
|
|
|
|
exec("mysqldump --user={$user} --password={$pass} --host={$host} {$database} --result-file={$dir} 2>&1", $output);
|
|
if(!empty($output))
|
|
{
|
|
var_dump($output);
|
|
}
|
|
}
|
|
|
|
|
|
## Zip all dumps
|
|
$zipfile = "dumps.zip";
|
|
|
|
if(file_exists($zipfile))
|
|
{
|
|
unlink($zipfile);
|
|
}
|
|
$zip = new ZipArchive;
|
|
if($zip -> open($zipfile, ZipArchive::CREATE ) === TRUE)
|
|
{
|
|
$dir = opendir($dumps_path);
|
|
while($file = readdir($dir)) {
|
|
if(is_file($dumps_path.$file)) {
|
|
$zip -> addFile($dumps_path.$file, $file);
|
|
}
|
|
}
|
|
$zip ->close();
|
|
}
|