Esempio n. 1
0
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);
        }
    }
}
Esempio n. 2
0
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);
        }
    }
}
Esempio n. 3
0
<?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');