From aa1eed46b3d03746640a73db6df7d163ba036df3 Mon Sep 17 00:00:00 2001 From: Ramil Valitov <ramilvalitov@gmail.com> Date: Mon, 30 Mar 2020 12:41:39 +0200 Subject: [PATCH] Feature/backup copies --- interface/web/mail/form/mail_user.tform.php | 2 +- interface/web/sites/form/web_vhost_domain.tform.php | 2 +- server/lib/classes/cron.d/500-backup.inc.php | 9 +++++++-- server/lib/classes/cron.d/500-backup_mail.inc.php | 7 ++++++- 4 files changed, 15 insertions(+), 5 deletions(-) diff --git a/interface/web/mail/form/mail_user.tform.php b/interface/web/mail/form/mail_user.tform.php index da386f5844..0efc7f3d6b 100644 --- a/interface/web/mail/form/mail_user.tform.php +++ b/interface/web/mail/form/mail_user.tform.php @@ -469,7 +469,7 @@ if ($backup_available) { 'datatype' => 'INTEGER', 'formtype' => 'SELECT', 'default' => '', - 'value' => array('1' => '1', '2' => '2', '3' => '3', '4' => '4', '5' => '5', '6' => '6', '7' => '7', '8' => '8', '9' => '9', '10' => '10') + 'value' => array('1' => '1', '2' => '2', '3' => '3', '4' => '4', '5' => '5', '6' => '6', '7' => '7', '8' => '8', '9' => '9', '10' => '10', '15' => '15', '20' => '20', '30' => '30') ), ################################## # END Datatable fields diff --git a/interface/web/sites/form/web_vhost_domain.tform.php b/interface/web/sites/form/web_vhost_domain.tform.php index 8b5a36441a..5c3057f685 100644 --- a/interface/web/sites/form/web_vhost_domain.tform.php +++ b/interface/web/sites/form/web_vhost_domain.tform.php @@ -668,7 +668,7 @@ if ($backup_available) { 'datatype' => 'INTEGER', 'formtype' => 'SELECT', 'default' => '', - 'value' => array('1' => '1', '2' => '2', '3' => '3', '4' => '4', '5' => '5', '6' => '6', '7' => '7', '8' => '8', '9' => '9', '10' => '10') + 'value' => array('1' => '1', '2' => '2', '3' => '3', '4' => '4', '5' => '5', '6' => '6', '7' => '7', '8' => '8', '9' => '9', '10' => '10', '15' => '15', '20' => '20', '30' => '30') ), 'backup_excludes' => array ( 'datatype' => 'VARCHAR', diff --git a/server/lib/classes/cron.d/500-backup.inc.php b/server/lib/classes/cron.d/500-backup.inc.php index f261daf468..b68dd3b8e1 100644 --- a/server/lib/classes/cron.d/500-backup.inc.php +++ b/server/lib/classes/cron.d/500-backup.inc.php @@ -33,6 +33,11 @@ class cronjob_backup extends cronjob { // job schedule protected $_schedule = '0 0 * * *'; + /** + * The maximum number of backups that ISPConfig can store. + */ + const max_backups = 30; + /* this function is optional if it contains no custom code */ public function onPrepare() { global $app; @@ -177,7 +182,7 @@ class cronjob_backup extends cronjob { rsort($files); - for ($n = $backup_copies; $n <= 10; $n++) { + for ($n = $backup_copies; $n <= self::max_backups; $n++) { if(isset($files[$n]) && is_file($web_backup_dir.'/'.$files[$n])) { $sql = "DELETE FROM web_backup WHERE server_id = ? AND parent_domain_id = ? AND filename = ?"; $app->db->query($sql, $conf['server_id'], $web_id, $files[$n]); @@ -306,7 +311,7 @@ class cronjob_backup extends cronjob { reset($files); foreach($files as $db_name => $filelist) { rsort($filelist); - for ($n = $backup_copies; $n <= 10; $n++) { + for ($n = $backup_copies; $n <= self::max_backups; $n++) { if(isset($filelist[$n]) && is_file($db_backup_dir.'/'.$filelist[$n])) { $sql = "DELETE FROM web_backup WHERE server_id = ? AND parent_domain_id = ? AND filename = ?"; $app->db->query($sql, $conf['server_id'], $web_id, $filelist[$n]); diff --git a/server/lib/classes/cron.d/500-backup_mail.inc.php b/server/lib/classes/cron.d/500-backup_mail.inc.php index 234f02771d..2b1fd58177 100644 --- a/server/lib/classes/cron.d/500-backup_mail.inc.php +++ b/server/lib/classes/cron.d/500-backup_mail.inc.php @@ -33,6 +33,11 @@ class cronjob_backup_mail extends cronjob { protected $_schedule = '0 0 * * *'; private $tmp_backup_dir = ''; + /** + * The maximum number of backups that ISPConfig can store. + */ + const max_backups = 30; + /* this function is optional if it contains no custom code */ public function onPrepare() { global $app; @@ -204,7 +209,7 @@ class cronjob_backup_mail extends cronjob { } $dir_handle->close(); rsort($files); - for ($n = $backup_copies; $n <= 10; $n++) { + for ($n = $backup_copies; $n <= self::max_backups; $n++) { if(isset($files[$n]) && is_file($mail_backup_dir.'/'.$files[$n])) { unlink($mail_backup_dir.'/'.$files[$n]); $sql = "DELETE FROM mail_backup WHERE server_id = ? AND parent_domain_id = ? AND filename = ?"; -- GitLab