@@ -48,39 +48,39 @@ |
||
| 48 | 48 | { |
| 49 | 49 | self::setSnippets([ |
| 50 | 50 | 'sBody' => 'style="font-family: Arial, Helvetica, sans-serif; ' . |
| 51 | - 'background-color:#343b43; ' . |
|
| 52 | - 'font-size: 15px; margin:0; ' . |
|
| 53 | - 'padding:0;"', |
|
| 51 | + 'background-color:#343b43; ' . |
|
| 52 | + 'font-size: 15px; margin:0; ' . |
|
| 53 | + 'padding:0;"', |
|
| 54 | 54 | 'sTableHeader' => 'style="width:100%; ' . |
| 55 | - 'font-family: Arial, Helvetica, sans-serif; ' . |
|
| 56 | - 'margin:0; color:#e6e6e6;" ' . |
|
| 57 | - 'align="center" cellpadding="5" cellspacing="0"', |
|
| 55 | + 'font-family: Arial, Helvetica, sans-serif; ' . |
|
| 56 | + 'margin:0; color:#e6e6e6;" ' . |
|
| 57 | + 'align="center" cellpadding="5" cellspacing="0"', |
|
| 58 | 58 | 'sTableError' => 'style="width:100%; ' . |
| 59 | - 'background-color:#e6e6e6; ' . |
|
| 60 | - 'margin:0 auto 15px; ' . |
|
| 61 | - 'border:1px solid #011516;" ' . |
|
| 62 | - 'align="center" cellpadding="5" cellspacing="0"', |
|
| 59 | + 'background-color:#e6e6e6; ' . |
|
| 60 | + 'margin:0 auto 15px; ' . |
|
| 61 | + 'border:1px solid #011516;" ' . |
|
| 62 | + 'align="center" cellpadding="5" cellspacing="0"', |
|
| 63 | 63 | 'sTableErrorCol' => 'style="border-top: 1px solid #f6f6f6; ' . |
| 64 | - 'border-bottom: 1px solid #c9c9c9;"', |
|
| 64 | + 'border-bottom: 1px solid #c9c9c9;"', |
|
| 65 | 65 | 'sTableContent' => 'style="width:420px; ' . |
| 66 | - 'font-family: Arial, Helvetica, sans-serif; ' . |
|
| 67 | - 'margin:0 auto;" ' . |
|
| 68 | - 'align="center" cellpadding="0" cellspacing="0"', |
|
| 66 | + 'font-family: Arial, Helvetica, sans-serif; ' . |
|
| 67 | + 'margin:0 auto;" ' . |
|
| 68 | + 'align="center" cellpadding="0" cellspacing="0"', |
|
| 69 | 69 | 'sTableContentCol' => 'style="padding:0 10px;"', |
| 70 | 70 | 'sTableStatus' => 'style="background-color:#%s; ' . |
| 71 | - 'width:100%%; ' . |
|
| 72 | - 'margin:0 auto 15px; ' . |
|
| 73 | - 'border:1px solid #011516;" ' . |
|
| 74 | - 'align="center" cellpadding="10" cellspacing="0"', |
|
| 71 | + 'width:100%%; ' . |
|
| 72 | + 'margin:0 auto 15px; ' . |
|
| 73 | + 'border:1px solid #011516;" ' . |
|
| 74 | + 'align="center" cellpadding="10" cellspacing="0"', |
|
| 75 | 75 | 'sTableStatusHead' => 'style="margin:0;"', |
| 76 | 76 | 'sTableStatusText' => 'style="font-size:16px;"', |
| 77 | 77 | 'sTableBackup' => 'style="width:100%; font-family: Arial, Helvetica, sans-serif; ' . |
| 78 | - 'background-color:#e6e6e6; ' . |
|
| 79 | - 'margin:0 0 15px; ' . |
|
| 80 | - 'border:1px solid #011516;" ' . |
|
| 81 | - 'align="center" cellpadding="5" cellspacing="0" width="100%"', |
|
| 78 | + 'background-color:#e6e6e6; ' . |
|
| 79 | + 'margin:0 0 15px; ' . |
|
| 80 | + 'border:1px solid #011516;" ' . |
|
| 81 | + 'align="center" cellpadding="5" cellspacing="0" width="100%"', |
|
| 82 | 82 | 'sTableBackupStatusColumn' => 'style="background-color:#%s; ' . |
| 83 | - 'border-bottom:1px solid #747474;"', |
|
| 83 | + 'border-bottom:1px solid #747474;"', |
|
| 84 | 84 | 'sTableBackupStatusText' => 'style="float:right;"', |
| 85 | 85 | 'sRowHead' => 'style="border-top: 1px solid #f6f6f6; border-bottom: 1px solid #c9c9c9;"', |
| 86 | 86 | 'sRowCheck' => 'style="border-top: 1px solid #f6f6f6; border-bottom: 1px solid #c9c9c9;"', |
@@ -123,10 +123,10 @@ |
||
| 123 | 123 | { |
| 124 | 124 | $executable = new Executable\Elasticdump($this->pathToElasticdump); |
| 125 | 125 | $executable->useHost($this->host) |
| 126 | - ->credentials($this->user, $this->password) |
|
| 127 | - ->dumpIndex($this->index) |
|
| 128 | - ->dumpType($this->type) |
|
| 129 | - ->dumpTo($target->getPathnamePlain()); |
|
| 126 | + ->credentials($this->user, $this->password) |
|
| 127 | + ->dumpIndex($this->index) |
|
| 128 | + ->dumpType($this->type) |
|
| 129 | + ->dumpTo($target->getPathnamePlain()); |
|
| 130 | 130 | return $executable; |
| 131 | 131 | } |
| 132 | 132 | |
@@ -79,7 +79,7 @@ |
||
| 79 | 79 | { |
| 80 | 80 | if (!class_exists('\\MicrosoftAzure\\Storage\\Blob\\BlobRestProxy')) { |
| 81 | 81 | throw new Exception('Azure Bob Storage SDK not loaded: use composer to install ' . |
| 82 | - '"microsoft/azure-storage-blob"'); |
|
| 82 | + '"microsoft/azure-storage-blob"'); |
|
| 83 | 83 | } |
| 84 | 84 | |
| 85 | 85 | // check for mandatory options |
@@ -125,7 +125,7 @@ discard block |
||
| 125 | 125 | { |
| 126 | 126 | $executable = $this->createOpenSSL($target); |
| 127 | 127 | $executable->encryptFile($target->getPathname()) |
| 128 | - ->deleteSource(!$this->keepUncrypted); |
|
| 128 | + ->deleteSource(!$this->keepUncrypted); |
|
| 129 | 129 | |
| 130 | 130 | return $executable; |
| 131 | 131 | } |
@@ -141,7 +141,7 @@ discard block |
||
| 141 | 141 | { |
| 142 | 142 | $executable = $this->createOpenSSL($target); |
| 143 | 143 | $executable->decryptFile($target->getPathname()) |
| 144 | - ->deleteSource(false); |
|
| 144 | + ->deleteSource(false); |
|
| 145 | 145 | |
| 146 | 146 | return $executable; |
| 147 | 147 | } |
@@ -161,7 +161,7 @@ discard block |
||
| 161 | 161 | $executable->useSSLCert($this->certFile); |
| 162 | 162 | } else { |
| 163 | 163 | $executable->usePassword($this->password) |
| 164 | - ->encodeBase64(true); |
|
| 164 | + ->encodeBase64(true); |
|
| 165 | 165 | } |
| 166 | 166 | $executable->useAlgorithm($this->algorithm); |
| 167 | 167 | |
@@ -39,7 +39,7 @@ |
||
| 39 | 39 | "vlucas/phpdotenv", |
| 40 | 40 | |
| 41 | 41 | ])) { |
| 42 | - continue; |
|
| 42 | + continue; |
|
| 43 | 43 | } |
| 44 | 44 | echo $package->name . ': ' . $package->version; |
| 45 | 45 | if (!preg_match('/^[v= ]*(([0-9]+)(\\.([0-9]+)(\\.([0-9]+)(-([0-9]+))?(-?([a-zA-Z-+][a-zA-Z0-9\\.\\-:]*)?)?)?)?)$/', $package->version)) { |
@@ -102,7 +102,7 @@ discard block |
||
| 102 | 102 | { |
| 103 | 103 | $executable = $this->createGpg($target); |
| 104 | 104 | $executable->encryptFile($target->getPathname()) |
| 105 | - ->deleteSource(!$this->keepUncrypted); |
|
| 105 | + ->deleteSource(!$this->keepUncrypted); |
|
| 106 | 106 | |
| 107 | 107 | return $executable; |
| 108 | 108 | } |
@@ -117,7 +117,7 @@ discard block |
||
| 117 | 117 | { |
| 118 | 118 | $executable = $this->createGpg($target); |
| 119 | 119 | $executable->decryptFile($target->getPathname()) |
| 120 | - ->deleteSource(false); |
|
| 120 | + ->deleteSource(false); |
|
| 121 | 121 | |
| 122 | 122 | return $executable; |
| 123 | 123 | } |
@@ -333,26 +333,26 @@ |
||
| 333 | 333 | { |
| 334 | 334 | $executable = new Executable\Mysqldump($this->pathToMysqldump); |
| 335 | 335 | $executable->credentials($this->user, $this->password) |
| 336 | - ->useHost($this->host) |
|
| 337 | - ->usePort($this->port) |
|
| 338 | - ->useProtocol($this->protocol) |
|
| 339 | - ->useQuickMode($this->quick) |
|
| 340 | - ->lockTables($this->lockTables) |
|
| 341 | - ->dumpBlobsHexadecimal($this->hexBlob) |
|
| 342 | - ->addGTIDStatement($this->gtidPurged) |
|
| 343 | - ->useSslCa($this->sslCa) |
|
| 344 | - ->useCompression($this->compress) |
|
| 345 | - ->skipExtendedInsert($this->skipExtendedInsert) |
|
| 346 | - ->dumpTables($this->tables) |
|
| 347 | - ->singleTransaction($this->singleTransaction) |
|
| 348 | - ->dumpDatabases($this->databases) |
|
| 349 | - ->ignoreTables($this->ignoreTables) |
|
| 350 | - ->produceFilePerTable($this->filePerTable) |
|
| 351 | - ->dumpNoData($this->noData) |
|
| 352 | - ->dumpRoutines($this->routines) |
|
| 353 | - ->skipTriggers($this->skipTriggers) |
|
| 354 | - ->dumpStructureOnly($this->structureOnly) |
|
| 355 | - ->dumpTo($this->getDumpTarget($target)); |
|
| 336 | + ->useHost($this->host) |
|
| 337 | + ->usePort($this->port) |
|
| 338 | + ->useProtocol($this->protocol) |
|
| 339 | + ->useQuickMode($this->quick) |
|
| 340 | + ->lockTables($this->lockTables) |
|
| 341 | + ->dumpBlobsHexadecimal($this->hexBlob) |
|
| 342 | + ->addGTIDStatement($this->gtidPurged) |
|
| 343 | + ->useSslCa($this->sslCa) |
|
| 344 | + ->useCompression($this->compress) |
|
| 345 | + ->skipExtendedInsert($this->skipExtendedInsert) |
|
| 346 | + ->dumpTables($this->tables) |
|
| 347 | + ->singleTransaction($this->singleTransaction) |
|
| 348 | + ->dumpDatabases($this->databases) |
|
| 349 | + ->ignoreTables($this->ignoreTables) |
|
| 350 | + ->produceFilePerTable($this->filePerTable) |
|
| 351 | + ->dumpNoData($this->noData) |
|
| 352 | + ->dumpRoutines($this->routines) |
|
| 353 | + ->skipTriggers($this->skipTriggers) |
|
| 354 | + ->dumpStructureOnly($this->structureOnly) |
|
| 355 | + ->dumpTo($this->getDumpTarget($target)); |
|
| 356 | 356 | // if compression is active and commands can be piped |
| 357 | 357 | if ($this->isHandlingCompression($target)) { |
| 358 | 358 | $executable->compressOutput($target->getCompression()); |
@@ -201,7 +201,7 @@ |
||
| 201 | 201 | |
| 202 | 202 | if ($configLoader->hasValidationErrors()) { |
| 203 | 203 | echo " Warning - The configuration file did not pass validation!" . PHP_EOL . |
| 204 | - " The following problems have been detected:" . PHP_EOL; |
|
| 204 | + " The following problems have been detected:" . PHP_EOL; |
|
| 205 | 205 | |
| 206 | 206 | foreach ($configLoader->getValidationErrors() as $line => $errors) { |
| 207 | 207 | echo sprintf("\n Line %d:\n", $line); |
@@ -195,12 +195,12 @@ discard block |
||
| 195 | 195 | $info = $this->getInfoHtml($result); |
| 196 | 196 | $footer = $this->getFooterHtml(); |
| 197 | 197 | $body = '<html><body ' . TPL::getSnippet('sBody') . '>' |
| 198 | - . $header |
|
| 199 | - . $status |
|
| 200 | - . $errors |
|
| 201 | - . $info |
|
| 202 | - . $footer |
|
| 203 | - . '</body></html>'; |
|
| 198 | + . $header |
|
| 199 | + . $status |
|
| 200 | + . $errors |
|
| 201 | + . $info |
|
| 202 | + . $footer |
|
| 203 | + . '</body></html>'; |
|
| 204 | 204 | $state = $result->allOk() ? 'OK' : ($result->backupOkButSkipsOrFails() ? 'WARNING' : 'ERROR'); |
| 205 | 205 | |
| 206 | 206 | $this->mailer->Subject = $this->subject . ' [' . ($this->isSimulation ? 'SIMULATION' : $state) . ']'; |
@@ -378,7 +378,7 @@ discard block |
||
| 378 | 378 | protected function getHeaderHtml() |
| 379 | 379 | { |
| 380 | 380 | return '<table ' . TPL::getSnippet('sTableContent') . '><tr><td ' . TPL::getSnippet('sTableContentCol') . '>' . |
| 381 | - '<table ' . TPL::getSnippet('sTableHeader') . '><tr><td>PHPBU - backup report</td></tr></table>'; |
|
| 381 | + '<table ' . TPL::getSnippet('sTableHeader') . '><tr><td>PHPBU - backup report</td></tr></table>'; |
|
| 382 | 382 | } |
| 383 | 383 | |
| 384 | 384 | /** |
@@ -417,11 +417,11 @@ discard block |
||
| 417 | 417 | Str::appendPluralS('cleanup', $this->numCleanups) |
| 418 | 418 | ); |
| 419 | 419 | $html = '<table ' . sprintf(TPL::getSnippet('sTableStatus'), $color) . '>' . |
| 420 | - '<tr><td>' . |
|
| 421 | - '<span ' . TPL::getSnippet('sTableStatusText') . '>' . date('Y-m-d H:i') . '</span>' . |
|
| 422 | - '<h1 ' . TPL::getSnippet('sTableStatusHead') . '>' . $status . '</h1>' . |
|
| 423 | - '<span ' . TPL::getSnippet('sTableStatusText') . '>' . $info . '</span>' . |
|
| 424 | - '</td></tr>' . |
|
| 420 | + '<tr><td>' . |
|
| 421 | + '<span ' . TPL::getSnippet('sTableStatusText') . '>' . date('Y-m-d H:i') . '</span>' . |
|
| 422 | + '<h1 ' . TPL::getSnippet('sTableStatusHead') . '>' . $status . '</h1>' . |
|
| 423 | + '<span ' . TPL::getSnippet('sTableStatusText') . '>' . $info . '</span>' . |
|
| 424 | + '</td></tr>' . |
|
| 425 | 425 | '</table>'; |
| 426 | 426 | |
| 427 | 427 | return $html; |
@@ -491,65 +491,65 @@ discard block |
||
| 491 | 491 | $status = 'FAILURE'; |
| 492 | 492 | } |
| 493 | 493 | $html .= '<tr>' . |
| 494 | - '<td ' . sprintf(TPL::getSnippet('sTableBackupStatusColumn'), $color) . ' colspan="4">' . |
|
| 495 | - sprintf('backup <em>%s</em>', $backup->getName()) . |
|
| 496 | - ' <span ' . TPL::getSnippet('sTableBackupStatusText') . '>' . $status . '</span>' . |
|
| 497 | - '</td>' . |
|
| 498 | - '</tr>' . |
|
| 499 | - '<tr>' . |
|
| 500 | - '<td ' . TPL::getSnippet('sRowHead') . '> </td>' . |
|
| 501 | - '<td ' . TPL::getSnippet('sRowHead') . ' align="right">executed</td>' . |
|
| 502 | - '<td ' . TPL::getSnippet('sRowHead') . ' align="right">skipped</td>' . |
|
| 503 | - '<td ' . TPL::getSnippet('sRowHead') . ' align="right">failed</td>' . |
|
| 504 | - '</tr>'; |
|
| 494 | + '<td ' . sprintf(TPL::getSnippet('sTableBackupStatusColumn'), $color) . ' colspan="4">' . |
|
| 495 | + sprintf('backup <em>%s</em>', $backup->getName()) . |
|
| 496 | + ' <span ' . TPL::getSnippet('sTableBackupStatusText') . '>' . $status . '</span>' . |
|
| 497 | + '</td>' . |
|
| 498 | + '</tr>' . |
|
| 499 | + '<tr>' . |
|
| 500 | + '<td ' . TPL::getSnippet('sRowHead') . '> </td>' . |
|
| 501 | + '<td ' . TPL::getSnippet('sRowHead') . ' align="right">executed</td>' . |
|
| 502 | + '<td ' . TPL::getSnippet('sRowHead') . ' align="right">skipped</td>' . |
|
| 503 | + '<td ' . TPL::getSnippet('sRowHead') . ' align="right">failed</td>' . |
|
| 504 | + '</tr>'; |
|
| 505 | 505 | |
| 506 | 506 | $html .= '<tr>' . |
| 507 | - '<td ' . TPL::getSnippet('sRowCheck') . '>checks</td>' . |
|
| 508 | - '<td ' . TPL::getSnippet('sRowCheck') . ' align="right">' . |
|
| 507 | + '<td ' . TPL::getSnippet('sRowCheck') . '>checks</td>' . |
|
| 508 | + '<td ' . TPL::getSnippet('sRowCheck') . ' align="right">' . |
|
| 509 | 509 | $backup->checkCount() . ' |
| 510 | 510 | </td>' . |
| 511 | - '<td ' . TPL::getSnippet('sRowCheck') . ' align="right"> |
|
| 511 | + '<td ' . TPL::getSnippet('sRowCheck') . ' align="right"> |
|
| 512 | 512 | |
| 513 | 513 | </td>' . |
| 514 | - '<td ' . TPL::getSnippet('sRowCheck') . ' align="right">' . |
|
| 514 | + '<td ' . TPL::getSnippet('sRowCheck') . ' align="right">' . |
|
| 515 | 515 | $backup->checkCountFailed() . |
| 516 | - '</td>' . |
|
| 517 | - '</tr>' . |
|
| 518 | - '<tr>' . |
|
| 519 | - '<td ' . TPL::getSnippet('sRowCrypt') . '>crypts</td>' . |
|
| 520 | - '<td ' . TPL::getSnippet('sRowCrypt') . ' align="right">' . |
|
| 516 | + '</td>' . |
|
| 517 | + '</tr>' . |
|
| 518 | + '<tr>' . |
|
| 519 | + '<td ' . TPL::getSnippet('sRowCrypt') . '>crypts</td>' . |
|
| 520 | + '<td ' . TPL::getSnippet('sRowCrypt') . ' align="right">' . |
|
| 521 | 521 | $backup->cryptCount() . |
| 522 | - '</td>' . |
|
| 523 | - '<td ' . TPL::getSnippet('sRowCrypt') . ' align="right">' . |
|
| 522 | + '</td>' . |
|
| 523 | + '<td ' . TPL::getSnippet('sRowCrypt') . ' align="right">' . |
|
| 524 | 524 | $backup->cryptCountSkipped() . |
| 525 | - '</td>' . |
|
| 526 | - '<td ' . TPL::getSnippet('sRowCrypt') . ' align="right">' . |
|
| 525 | + '</td>' . |
|
| 526 | + '<td ' . TPL::getSnippet('sRowCrypt') . ' align="right">' . |
|
| 527 | 527 | $backup->cryptCountFailed() . |
| 528 | - '</td>' . |
|
| 529 | - '</tr>' . |
|
| 530 | - '<tr>' . |
|
| 531 | - '<td ' . TPL::getSnippet('sRowSync') . '>syncs</td>' . |
|
| 532 | - '<td ' . TPL::getSnippet('sRowSync') . ' align="right">' . |
|
| 528 | + '</td>' . |
|
| 529 | + '</tr>' . |
|
| 530 | + '<tr>' . |
|
| 531 | + '<td ' . TPL::getSnippet('sRowSync') . '>syncs</td>' . |
|
| 532 | + '<td ' . TPL::getSnippet('sRowSync') . ' align="right">' . |
|
| 533 | 533 | $backup->syncCount() . '</td>' . |
| 534 | - '<td ' . TPL::getSnippet('sRowSync') . ' align="right">' . |
|
| 534 | + '<td ' . TPL::getSnippet('sRowSync') . ' align="right">' . |
|
| 535 | 535 | $backup->syncCountSkipped() . |
| 536 | - '</td>' . |
|
| 537 | - '<td ' . TPL::getSnippet('sRowSync') . ' align="right">' . |
|
| 536 | + '</td>' . |
|
| 537 | + '<td ' . TPL::getSnippet('sRowSync') . ' align="right">' . |
|
| 538 | 538 | $backup->syncCountFailed() . |
| 539 | - '</td>' . |
|
| 540 | - '</tr>' . |
|
| 541 | - '<tr>' . |
|
| 542 | - '<td ' . TPL::getSnippet('sRowCleanup') . '>cleanups</td>' . |
|
| 543 | - '<td ' . TPL::getSnippet('sRowCleanup') . ' align="right">' . |
|
| 539 | + '</td>' . |
|
| 540 | + '</tr>' . |
|
| 541 | + '<tr>' . |
|
| 542 | + '<td ' . TPL::getSnippet('sRowCleanup') . '>cleanups</td>' . |
|
| 543 | + '<td ' . TPL::getSnippet('sRowCleanup') . ' align="right">' . |
|
| 544 | 544 | $backup->cleanupCount() . |
| 545 | - '</td>' . |
|
| 546 | - '<td ' . TPL::getSnippet('sRowCleanup') . ' align="right">' . |
|
| 545 | + '</td>' . |
|
| 546 | + '<td ' . TPL::getSnippet('sRowCleanup') . ' align="right">' . |
|
| 547 | 547 | $backup->cleanupCountSkipped() . |
| 548 | - '</td>' . |
|
| 549 | - '<td ' . TPL::getSnippet('sRowCleanup') . ' align="right">' . |
|
| 548 | + '</td>' . |
|
| 549 | + '<td ' . TPL::getSnippet('sRowCleanup') . ' align="right">' . |
|
| 550 | 550 | $backup->cleanupCountFailed() . |
| 551 | - '</td>' . |
|
| 552 | - '</tr>'; |
|
| 551 | + '</td>' . |
|
| 552 | + '</tr>'; |
|
| 553 | 553 | } |
| 554 | 554 | $html .= '</table>'; |
| 555 | 555 | |
@@ -565,6 +565,6 @@ discard block |
||
| 565 | 565 | protected function getFooterHtml() |
| 566 | 566 | { |
| 567 | 567 | return '<p ' . TPL::getSnippet('sStats') . '>' . Statistics::resourceUsage() . '</p>' . |
| 568 | - '</td></tr></table>'; |
|
| 568 | + '</td></tr></table>'; |
|
| 569 | 569 | } |
| 570 | 570 | } |