function backup_set_backup_cron() { global $amp_conf; //remove all stale backup's edit_crontab($amp_conf['AMPBIN'] . '/backup.php'); $backups = backup_get_backup('all_detailed'); foreach ($backups as $b) { $cron = ''; // The ID porition of the command was added to better support other cron daemons (#7374) // We should be using the format of ID=[vendor]_[module raw name]_[id] $cron['command'] = 'ID=freepbx_backup_' . $b['id'] . ' ' . $amp_conf['AMPBIN'] . '/backup.php --id=' . $b['id']; if (!isset($b['cron_random']) || $b['cron_random'] != 'true') { switch ($b['cron_schedule']) { case 'never': $cron = ''; break; case 'hourly': case 'daily': case 'weekly': case 'monthly': case 'annually': case 'reboot': $cron['event'] = $b['cron_schedule']; break; case 'custom': $cron['minute'] = isset($b['cron_minute']) ? implode(',', $b['cron_minute']) : '*'; $cron['dom'] = isset($b['cron_dom']) ? implode(',', $b['cron_dom']) : '*'; $cron['dow'] = isset($b['cron_dow']) ? implode(',', $b['cron_dow']) : '*'; $cron['hour'] = isset($b['cron_hour']) ? implode(',', $b['cron_hour']) : '*'; $cron['month'] = isset($b['cron_month']) ? implode(',', $b['cron_month']) : '*'; break; } } else { switch ($b['cron_schedule']) { case 'annually': $cron['month'] = rand(1, 12); case 'monthly': $cron['dom'] = rand(1, 31); case 'weekly': if (!in_array($b['cron_schedule'], array('annually', 'monthly'))) { $cron['dow'] = rand(0, 6); } case 'daily': $hour = rand(0, 7) + 21; $cron['hour'] = $hour > 23 ? $hour - 23 : $hour; case 'hourly': $cron['minute'] = rand(0, 59); break; } } if ($cron) { //dbug('calling cron with ', $cron); edit_crontab('', $cron); } } }
function queues_set_backup_cron() { global $amp_conf; //remove all stale backup's edit_crontab($amp_conf['AMPBIN'] . '/queue_reset_stats.php'); //get our list of queues $queues_list = queues_list(true); $queues = array(); foreach ($queues_list as $key => $value) { //get queue details $queues[$value[0]] = queues_get($value[0], false); } foreach ($queues as $qid => $q) { $cron_vars = array('cron_minute', 'cron_hour', 'cron_dow', 'cron_month', 'cron_dom'); foreach ($cron_vars as $value) { if (isset($q[$value])) { $q[$value] = array($q[$value]); } } if (!isset($q['cron_schedule'])) { $q['cron_schedule'] = 'never'; } $cron = ''; $cron['command'] = $amp_conf['AMPBIN'] . '/queue_reset_stats.php --id=' . $qid; if (!isset($q['cron_random']) || $q['cron_random'] != 'true') { switch ($q['cron_schedule']) { case 'never': $cron = ''; break; case 'hourly': case 'daily': case 'weekly': case 'monthly': case 'annually': case 'reboot': $cron['event'] = $q['cron_schedule']; break; case 'custom': $cron['minute'] = isset($q['cron_minute']) ? implode(',', $q['cron_minute']) : '*'; $cron['dom'] = isset($q['cron_dom']) ? implode(',', $q['cron_dom']) : '*'; $cron['dow'] = isset($q['cron_dow']) ? implode(',', $q['cron_dow']) : '*'; $cron['hour'] = isset($q['cron_hour']) ? implode(',', $q['cron_hour']) : '*'; $cron['month'] = isset($q['cron_month']) ? implode(',', $q['cron_month']) : '*'; break; default: $cron = ''; break; } } else { switch ($q['cron_schedule']) { case 'annually': $cron['month'] = rand(1, 12); case 'monthly': $cron['dom'] = rand(1, 31); case 'weekly': if (!in_array($q['cron_schedule'], array('annually', 'monthly'))) { $cron['dow'] = rand(0, 6); } case 'daily': $hour = rand(0, 7) + 21; $cron['hour'] = $hour > 23 ? $hour - 23 : $hour; case 'hourly': $cron['minute'] = rand(0, 59); break; default: $cron = ''; break; } } if ($cron) { //dbug('calling cron with ', $cron); edit_crontab('', $cron); } } }
<?php if (!defined('FREEPBX_IS_AUTH')) { die('No direct script access allowed'); } //remove all crons edit_crontab($amp_conf['AMPBIN'] . '/backup.php'); sql('DROP TABLE backup'); sql('DROP TABLE backup_cache'); sql('DROP TABLE backup_details'); sql('DROP TABLE backup_items'); sql('DROP TABLE backup_server_details'); sql('DROP TABLE backup_servers'); sql('DROP TABLE backup_template_details'); sql('DROP TABLE backup_templates');