-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathCronDbBackups.php
More file actions
119 lines (99 loc) · 3.05 KB
/
CronDbBackups.php
File metadata and controls
119 lines (99 loc) · 3.05 KB
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
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
<?php
/**
* Contao Open Source CMS
*
* @copyright MEN AT WORK 2014
* @package syncCto
* @license GNU/LGPL
* @filesource
*/
/**
* Initialize the system
*/
$dir = dirname(isset($_SERVER['SCRIPT_FILENAME']) ? $_SERVER['SCRIPT_FILENAME'] : __FILE__);
while ($dir && $dir != '.' && $dir != '/' && !is_file($dir . '/system/initialize.php')) {
$dir = dirname($dir);
}
if (!is_file($dir . '/system/initialize.php')) {
header("HTTP/1.0 500 Internal Server Error");
header('Content-Type: text/html; charset=utf-8');
echo '<h1>500 Internal Server Error</h1>';
echo '<p>Could not find initialize.php!</p>';
exit(1);
}
define('TL_MODE', 'BACKUP');
require($dir . '/system/initialize.php');
/**
* Class CronDbBackups
*/
class CronDbBackups extends Backend
{
/**
* Set level
*
* @var boolean
*/
protected $blnRecommended = true;
protected $blnNoneRecommended = true;
protected $blnNoneRecommendedWithHidden = true;
/**
* @var SyncCtoHelper
*/
protected $objSyncCtoHelper;
/**
* @var SyncCtoDatabase
*/
protected $objSyncCtoDatabase;
/**
* Initialize the controller
*/
public function __construct()
{
parent::__construct();
// Init helper
$this->objSyncCtoHelper = SyncCtoHelper::getInstance();
$this->objSyncCtoDatabase = SyncCtoDatabase::getInstance();
// Set zip suffix
$this->objSyncCtoDatabase->suffixZipname = "AutoBackup.zip";
}
/**
* Implement the commands to run by this batch program
*/
public function run()
{
try
{
// Get a list with all needed tables
$arrTables = array();
if ($this->blnRecommended)
{
$arrTables = array_merge($arrTables, $this->objSyncCtoHelper->databaseTablesRecommended());
}
if ($this->blnNoneRecommended && !$this->blnNoneRecommendedWithHidden)
{
$arrTables = array_merge($arrTables, $this->objSyncCtoHelper->databaseTablesNoneRecommended());
}
else if (!$this->blnNoneRecommended && $this->blnNoneRecommendedWithHidden)
{
$arrTables = array_merge($arrTables, $this->objSyncCtoHelper->databaseTablesNoneRecommendedWithHidden());
}
if (empty($arrTables))
{
//$this->log("No tables found for syncCto auto DB backup.", __CLASS__ . " | " . __FUNCTION__, 'CRON');
return;
}
// Run dump
$this->objSyncCtoDatabase->runDump(array_keys($arrTables), false);
//$this->log("Finished syncCto auto DB backup." , __CLASS__ . " | " . __FUNCTION__, 'CRON');
}
catch (Exception $exc)
{
//$this->log("Error by db backup with msg: " . $exc->getMessage(), __CLASS__ . " | " . __FUNCTION__, 'CRON');
}
}
}
/**
* Instantiate log purger
*/
$objFileBackups = new CronDbBackups();
$objFileBackups->run();