$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;
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; } }
`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);