-
Notifications
You must be signed in to change notification settings - Fork 0
/
backupdb.php
96 lines (76 loc) · 2.22 KB
/
backupdb.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
<?php
require 'vendor/autoload.php';
require 'resources/library/db.php';
define('DEBUG_ON', TRUE);
if(DEBUG_ON){error_reporting(-1);}
$now = date("Ymd_His");
syslog(LOG_INFO, "phpMyS3Backup - Starting run ID $now");
// ********************************
// Get list of databases
// ********************************
$alldb = array();
$GLOBALS['con'] = getDbConn();
$res = mysqli_query($GLOBALS['con'], "SHOW DATABASES;");
while($row = mysqli_fetch_array($res)){
if($row['Database'] != "information_schema"){
$alldb[] = $row['Database'];
deb("Database found: {$row['Database']}");
}
}
// ********************************
// MySQLDump each database
// ********************************
system("mkdir /tmp/$now/");
foreach($alldb as $db){
$cmd = "mysqldump $db -h ".getDbHost()." -u controller -pilovebunnies > /tmp/{$now}/$db.sql";
deb("Doing: $cmd");
system($cmd);
}
// ********************************
// gzip databases
// ********************************
foreach($alldb as $db){
system("gzip /tmp/{$now}/$db.sql");
}
// ********************************
// Upload the files to S3
// ********************************
$s3 = new Aws\S3\S3Client([
'version' => 'latest',
'region' => 'us-east-1'
]);
$bucket = strtolower('phpmys3backup'.'-'.$now );
deb("Creating Bucket $bucket");
$create_bucket_response = $s3->createBucket([
'ACL' => 'public-read',
'Bucket' => $bucket
]);
deb("created bucket $bucket");
deb("bucket created - doing file add");
foreach ($alldb as $db) {
$filename = "$db.sql.gz";
$path = "/tmp/{$now}/";
$uploadfile = $path.$filename;
$result = $s3->putObject([
'ACL' => 'public-read',
'Bucket' => $bucket,
'Key' => $uploadfile,
'SourceFile' => $uploadfile
]);
$objUrl = $result['ObjectURL'];
deb("Uploaded Object URL: $objUrl");
}
// ********************************
// Cleanup the local filesystem
// ********************************
system("rm -rf /tmp/{$now}/");
deb("DONE");
syslog(LOG_INFO, "phpMyS3Backup - completed run ID $now");
// ********************************
// Done!
// ********************************
function deb ($msg) {
if(DEBUG_ON) { print $msg . "\n</p>"; }
}
//header('Location: /introspection.php');
?>