Marius Cramer
2014-10-24 2d5fcd53c19a65b9c968a1db2e9af643537379c3
server/lib/classes/cron.d/500-backup_mail.inc.php
@@ -27,7 +27,7 @@
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
class cronjob_backup extends cronjob {
class cronjob_backup_mail extends cronjob {
   // job schedule
   protected $_schedule = '0 0 * * *';
@@ -83,7 +83,9 @@
            foreach($records as $rec) {
               //* Do the mailbox backup
               if($rec['backup_interval'] == 'daily' or ($rec['backup_interval'] == 'weekly' && date('w') == 0) or ($rec['backup_interval'] == 'monthly' && date('d') == '01')) {
                  $sql = "SELECT * FROM mail_domain WHERE domain = '".$app->db->quote(explode("@",$rec['email'])[1])."'";
                  $email = $rec['email'][1];
                  $sql="SELECT * FROM mail_domain WHERE domain = ?" . $app->db->quote(explode("@",$email))."'";
                  unset($email);
                  $domain_rec=$app->db->queryOneRecord($sql);
                  $mail_backup_dir = $backup_dir.'/mail'.$domain_rec['domain_id'];
@@ -95,13 +97,15 @@
                  $domain_dir=explode('/',$rec['maildir']); 
                  $_temp=array_pop($domain_dir);unset($_temp);
                  $domain_dir=implode('/',$domain_dir);
                  $source_dir=array_pop(explode('/',$rec['maildir']));
                  $parts=explode('/',$rec['maildir']);
                  $source_dir=array_pop($parts);
                  unset($parts);
                  //* create archives
                  if($backup_mode == 'userzip') {
                     $mail_backup_file.='.zip';
                     exec('cd '.$rec['homedir'].' && zip -b /tmp -r '.$mail_backup_dir.'/'.$mail_backup_file.' '.$source_dir.' > /dev/nul');
                     exec('cd '.$domain_dir.' && zip '.$mail_backup_dir.'/'.$mail_backup_file.' -b /tmp -r '.$source_dir.' > /dev/nul', $tmp_output, $retval);
                  } else {
                     /* Create a tar.gz backup */
                     $mail_backup_file.='.tar.gz';