From b772b1b26c7fa3490997e67c271fba2c83bb1b38 Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Wed, 3 Jul 2019 12:26:58 +0200
Subject: [PATCH] Implemented #5303 database Backup including routines

---
 server/lib/classes/cron.d/500-backup.inc.php | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/server/lib/classes/cron.d/500-backup.inc.php b/server/lib/classes/cron.d/500-backup.inc.php
index fa57431116..77b355fe6e 100644
--- a/server/lib/classes/cron.d/500-backup.inc.php
+++ b/server/lib/classes/cron.d/500-backup.inc.php
@@ -225,6 +225,11 @@ class cronjob_backup extends cronjob {
 				if(is_array($records)) {
 
 					include '/usr/local/ispconfig/server/lib/mysql_clientdb.conf';
+					
+					//* Check mysqldump capabilities
+					exec('mysqldump --help',$tmp);
+					$mysqldump_routines = (strpos(implode($tmp),'--routines') !== false)?'--routines':'';
+					unset($tmp);
 
 					foreach($records as $rec) {
 
@@ -252,7 +257,7 @@ class cronjob_backup extends cronjob {
 							$db_name = $rec['database_name'];
 							$db_backup_file = 'db_'.$db_name.'_'.date('Y-m-d_H-i').'.sql';
 							//$command = "mysqldump -h '".escapeshellcmd($clientdb_host)."' -u '".escapeshellcmd($clientdb_user)."' -p'".escapeshellcmd($clientdb_password)."' -c --add-drop-table --create-options --quick --result-file='".$db_backup_dir.'/'.$db_backup_file."' '".$db_name."'";
-							$command = "mysqldump -h ".escapeshellarg($clientdb_host)." -u ".escapeshellarg($clientdb_user)." -p".escapeshellarg($clientdb_password)." -c --add-drop-table --create-options --quick --max_allowed_packet=512M --result-file='".$db_backup_dir.'/'.$db_backup_file."' '".$db_name."'";
+							$command = "mysqldump -h ".escapeshellarg($clientdb_host)." -u ".escapeshellarg($clientdb_user)." -p".escapeshellarg($clientdb_password)." -c --add-drop-table --create-options --quick --max_allowed_packet=512M ".$mysqldump_routines." --result-file='".$db_backup_dir.'/'.$db_backup_file."' '".$db_name."'";
 							exec($command, $tmp_output, $retval);
 
 							//* Compress the backup with gzip / pigz
-- 
GitLab