コード例 #1
0
$var['servers'] = backup_get_server('all');
//server type
if ($var['id'] && !$var['server_type']) {
    $var['server_type'] = $var['servers'][$var['id']]['type'];
}
//action actions
switch ($var['action']) {
    case 'save':
        // Make sure people can't set it to be more than 25MB
        $maxsize = string2bytes($var['maxsize'], $var['maxtype']);
        if ($maxsize > 26214400) {
            $maxsize = 26214400;
        }
        $var['maxsize'] = $maxsize;
        unset($var['maxtype']);
        $var['id'] = backup_put_server($var);
        break;
    case 'delete':
        $var['id'] = backup_del_server($var['id']);
        break;
}
//view action
switch ($var['action']) {
    case 'edit':
    case 'save':
        if (!$var['id']) {
            $var['id'] = $var['server_type'];
        }
        $var = array_merge($var, backup_get_server($var['id']));
        $content = load_view(dirname(__FILE__) . '/views/servers/' . $var['type'] . '.php', $var);
        break;
コード例 #2
0
ファイル: Backup.class.php プロジェクト: lidl/backup
 public function doConfigPageInit($page)
 {
     $_REQUEST['submit'] = isset($_REQUEST['submit']) ? $_REQUEST['submit'] : '';
     $_REQUEST['action'] = isset($_REQUEST['action']) ? $_REQUEST['action'] : '';
     $_REQUEST['id'] = isset($_REQUEST['id']) ? $_REQUEST['id'] : '';
     switch ($page) {
         case 'backup':
             if ($_REQUEST['submit'] == _('Delete') && $_REQUEST['action'] == 'save') {
                 $_REQUEST['action'] = 'delete';
             }
             switch ($_REQUEST['action']) {
                 case 'wizard':
                     $current_servers = backup_get_server('all_detailed');
                     $server = array();
                     $backup = array();
                     $create_server = false;
                     $backup['bu_server'] = '0';
                     extract($_REQUEST, EXTR_SKIP);
                     foreach ($current_servers as $key => $value) {
                         if ($value['name'] == 'Local Storage' && $value['type'] == 'local' && $value['immortal'] == 'true') {
                             $backup['storage_servers'][] = $value['id'];
                         }
                         if ($value['name'] == 'Config server' && $value['type'] == 'mysql' && $value['immortal'] == 'true') {
                             $mysqlserver = $value['id'];
                         }
                         if ($value['name'] == 'CDR server' && $value['type'] == 'local' && $value['immortal'] == 'true') {
                             $cdrserver = $value['id'];
                         }
                         if ($value['type'] == $wizremtype) {
                             //If a server has the same host AND user we assume it already exists
                             $create_server = !($wizserveraddr == $value['host'] && $wizserveruser == $value['user']);
                         }
                     }
                     if ($create_server && $wizremote == 'yes') {
                         $server['name'] = $wizname;
                         $server['desc'] = $wizdesc ? $wizdesc : _('Wizard') . ": " . $wizname;
                         $server['type'] = $wizremtype;
                         $server['host'] = $wizserveraddr;
                         $server['user'] = $wizserveruser;
                         $server['path'] = $wizremotepath ? $wizremotepath : '';
                         switch ($wizremtype) {
                             case 'ftp':
                                 $server['port'] = $wizserverport ? $wizserverport : '21';
                                 $server['password'] = $wizftppass ? $wizftppass : '';
                                 $server['transfer'] = $wiztrans;
                                 break;
                             case 'ssh':
                                 $server['port'] = $wizserverport ? $wizserverport : '22';
                                 $server['key'] = $wizsshkeypath;
                                 break;
                         }
                         $backup['storage_servers'][] = backup_put_server($server);
                     }
                     //Create Backup Job
                     $backup['name'] = $wizname;
                     $backup['desc'] = $wizdesc;
                     if ($wiznotif == 'yes' && !empty($wizemail)) {
                         $backup['email'] = $wizemail;
                     } else {
                         $backup['email'] = '';
                     }
                     //cron
                     $backup['cron_minute'] = array('*');
                     $backup['cron_dom'] = array('*');
                     $backup['cron_dow'] = array('*');
                     $backup['cron_hour'] = array('*');
                     $backup['cron_month'] = array('*');
                     $backup['cron_schedule'] = $wizfreq;
                     switch ($wizfreq) {
                         case 'daily':
                             $backup['cron_hour'] = array($wizat);
                             break;
                         case 'weekly':
                             $backup['cron_dow'] = array($wizat[0]);
                             $backup['cron_hour'] = array($wizat[1]);
                             break;
                         case 'monthly':
                             $backup['cron_dom'] = array($wizat[0]);
                             $backup['cron_hour'] = array('23');
                             $backup['cron_minute'] = array('59');
                             break;
                     }
                     $backup['delete_amount'] = '3';
                     //3 runs
                     $backup['delete_time'] = '30';
                     //clear backups older than 30...
                     $backup['delete_time_type'] = 'days';
                     //...days
                     //Backup Configs
                     $backup['type'][] = 'astdb';
                     $backup['path'][] = '';
                     $backup['exclude'][] = '';
                     $backup['type'][] = 'dir';
                     $backup['path'][] = '__AMPWEBROOT__/admin';
                     $backup['exclude'][] = '';
                     $backup['type'][] = 'dir';
                     $backup['path'][] = '__ASTETCDIR__';
                     $backup['exclude'][] = '';
                     $backup['type'][] = 'dir';
                     $backup['path'][] = '__AMPBIN__';
                     $backup['exclude'][] = '';
                     $backup['type'][] = 'dir';
                     $backup['path'][] = '/etc/dahdi';
                     $backup['exclude'][] = '';
                     $backup['type'][] = 'file';
                     $backup['path'][] = '/etc/freepbx.conf';
                     $backup['exclude'][] = '';
                     //Backup CDR
                     if ($wizcdr == 'yes' && isset($cdrserver)) {
                         $backup['type'][] = 'mysql';
                         $backup['path'][] = 'server-' . $cdrserver;
                         $backup['exclude'][] = '';
                     }
                     //Backup Voicemail
                     if ($wizvm == 'yes') {
                         $backup['type'][] = 'dir';
                         $backup['path'][] = '__ASTSPOOLDIR__/voicemail';
                         $backup['exclude'][] = '';
                     }
                     //Backup Voicemail
                     if ($wizbu == 'yes') {
                         $backup['type'][] = 'dir';
                         $backup['path'][] = '__ASTSPOOLDIR__/monitor';
                         $backup['exclude'][] = '';
                     }
                     backup_put_backup($backup);
                     break;
                 case 'delete':
                     backup_del_backup($_REQUEST['id']);
                     //TODO: Not allowed in 5.5
                     unset($_REQUEST['action']);
                     unset($_REQUEST['id']);
                     break;
             }
             break;
     }
 }
コード例 #3
0
ファイル: install.php プロジェクト: lidl/backup
			`exclude` text
			)';
foreach ($sql as $q) {
    db_e($db->query($q), 'die_freepbx', 0, _("Can not create backup tables"));
}
unset($sql);
// Default servers
$server = array('local' => array('id' => '', 'name' => 'Local Storage', 'desc' => _('Storage location for backups'), 'immortal' => 'true', 'type' => 'local', 'path' => '__ASTSPOOLDIR__/backup'), 'mysql' => array('id' => '', 'name' => 'Config server', 'desc' => _('PBX config server, generally a local database server'), 'immortal' => 'true', 'type' => 'mysql', 'host' => '__AMPDBHOST__', 'port' => 3306, 'user' => '__AMPDBUSER__', 'password' => '__AMPDBPASS__', 'dbname' => '__AMPDBNAME__'), 'cdr' => array('id' => '', 'name' => 'CDR server', 'desc' => _('CDR server, generally a local database server'), 'immortal' => 'true', 'type' => 'mysql', 'host' => '__CDRDBHOST__', 'port' => '__CDRDBPORT__', 'user' => '__CDRDBUSER__', 'password' => '__CDRDBPASS__', 'dbname' => '__CDRDBNAME__'));
// Load default servers if needed
if ($db->getOne('SELECT COUNT(*) FROM backup_servers') < 1) {
    $serverids = array();
    if (!function_exists("backup_put_server")) {
        include_once __DIR__ . "/functions.inc/servers.php";
    }
    foreach ($server as $id => $t) {
        $serverids[$id] = backup_put_server($t);
    }
    sql('UPDATE backup_servers SET readonly = "a:1:{i:0;s:1:\\"*\\";}"');
    sql('UPDATE backup_servers SET immortal = "true"');
    $createdby = serialize(array('created_by' => 'install.php'));
    sql('UPDATE backup_servers SET data = "' . addslashes($createdby) . '"');
    out(_('added default backup servers'));
    // Load default templates if needed
    if ($db->getOne('SELECT COUNT(*) FROM backup_templates') < 1) {
        //create default templates
        $template = array('basic' => array('id' => '', 'name' => 'Config Backup', 'desc' => _('Configurations only'), 'immortal' => 'true', 'type' => array('mysql', 'astdb'), 'path' => array('server-' . $serverids['mysql'], ''), 'exclude' => array('', '')), 'full' => array('id' => '', 'name' => 'Full Backup', 'desc' => _('A full backup of core settings and web files, doesn\'t include system sounds or recordings.'), 'type' => array('mysql', 'mysql', 'astdb', 'dir', 'dir', 'dir', 'dir', 'dir'), 'path' => array('server-' . $server['cdr'], 'server-' . $server['mysql'], 'astdb', '__ASTETCDIR__', '__AMPWEBROOT__', '__AMPBIN__', '/etc/dahdi', '/tftpboot'), 'exclude' => array('', '', '', '', '', '', '', '')), 'cdr' => array('id' => '', 'name' => 'CDRs', 'desc' => _('Call Detail Records'), 'immortal' => 'true', 'type' => array('mysql'), 'path' => array('server-' . $server['cdr']), 'exclude' => array('')), 'voicemail' => array('id' => '', 'name' => 'Voice Mail', 'desc' => _('Voice Mail Storage'), 'immortal' => 'true', 'type' => array('dir'), 'path' => array('__ASTSPOOLDIR__/voicemail'), 'exclude' => array('')), 'recordings' => array('id' => '', 'name' => 'System Audio', 'desc' => _('All system audio - including IVR prompts and Music On Hold. DOES NOT BACKUP VOICEMAIL'), 'immortal' => 'true', 'type' => array('dir', 'dir', 'dir'), 'path' => array('__ASTVARLIBDIR__/moh', '__ASTVARLIBDIR__/sounds/custom', '__ASTVARLIBDIR__/sounds/*/custom'), 'exclude' => array('', '', '')), 'safe_backup' => array('id' => '', 'name' => 'Exclude Backup Settings', 'desc' => _('Exclude Backup\'s settings so that they dont get restored, useful for a remote restore'), 'immortal' => 'true', 'type' => array('mysql'), 'path' => array('server-' . $server['mysql']), 'exclude' => array("backup\nbackup_cache\nbackup_details\nbackup_items\n" . "backup_server_details\nbackup_servers\nbackup_template_details\n" . "backup_templates\n")));
        if (!function_exists("backup_put_template")) {
            include_once __DIR__ . "/functions.inc/templates.php";
        }
        foreach ($template as $that => $t) {
            backup_put_template($t);