//Make sure backup folder exists $backup_dir = WPBACKITUP__CONTENT_PATH . '/' . WPBACKITUP__BACKUP_FOLDER; $backup_folder_exists = false; if (!is_dir($backup_dir)) { if (@mkdir($backup_dir, 0755)) { $backup_folder_exists = true; } } else { $backup_folder_exists = true; } //Cleanup old backups - this can be removed in a few months. //Get Zip File List $file_system = new WPBackItUp_FileSystem($logger); $file_list = $file_system->get_fileonly_list($backup_folder_root, 'zip|log'); //If there are zip files then move them into their own folders $logger->log_info(__METHOD__, 'Files in backup folder: ' . var_export($file_list, true)); $logger->log_info(__METHOD__, 'Last Error: ' . var_export(error_get_last(), true)); if (null != $file_list) { foreach ($file_list as $file) { //remove the suffix $file_name = substr(basename($file), 0, -4); //strip off the suffix IF one exists $folder_name = $file_name; if (($str_pos = strpos($folder_name, '-main-')) !== false) { $suffix = substr($folder_name, $str_pos); $folder_name = str_replace($suffix, '', $folder_name); } if (($str_pos = strpos($folder_name, '-others-')) !== false) { $suffix = substr($folder_name, $str_pos); $folder_name = str_replace($suffix, '', $folder_name); }
* WP BackItUp - Download handler * * @package WP BackItUp * @author Chris Simmons <*****@*****.**> * @link http://www.wpbackitup.com * */ //Turn off output buffering if it was on. while (@ob_end_clean()) { } // required for IE, otherwise Content-disposition is ignored //@apache_setenv('no-gzip', 1); //Causes failure on siteground...research @ini_set('zlib.output_compression', 'Off'); global $logger; $logger = new WPBackItUp_Logger(true, null, 'debug_download'); $logger->log_info(__METHOD__, $_REQUEST); if (isset($_REQUEST['_wpnonce']) && !empty($_REQUEST['_wpnonce']) && isset($_REQUEST['backup_file']) && !empty($_REQUEST['backup_file'])) { if (wp_verify_nonce($_REQUEST['_wpnonce'], WPBACKITUP__NAMESPACE . '-download_backup')) { $logger->log_info(__METHOD__, 'nonce verified'); //strip off the suffix IF one exists $folder_name = rtrim($_REQUEST['backup_file'], '.zip'); if (($str_pos = strpos($folder_name, '-main-')) !== false) { $suffix = substr($folder_name, $str_pos); $folder_name = str_replace($suffix, '', $folder_name); } if (($str_pos = strpos($folder_name, '-others-')) !== false) { $suffix = substr($folder_name, $str_pos); $folder_name = str_replace($suffix, '', $folder_name); } if (($str_pos = strpos($folder_name, '-plugins-')) !== false) { $suffix = substr($folder_name, $str_pos);
/** * Create all the tasks for a job * * @param $job_id * * @param $tasks * * @return bool */ private static function create_tasks($job_id, $tasks) { $logger = new WPBackItUp_Logger(false, null, 'debug_job'); $logger->log_info(__METHOD__, 'Begin'); //Create the job tasks $last_updated_time = time(); foreach ($tasks as $key => $value) { $task_name = $value; $task_data = array('task_id' => $task_name, 'task_status' => self::QUEUED, 'task_allocated_id' => '', 'task_last_updated' => $last_updated_time); $task_created = update_post_meta($job_id, $task_name, $task_data); if (false === $task_created) { $logger->log_error(__METHOD__, 'Tasks NOT created'); return false; } $logger->log_info(__METHOD__, 'task created:' . $task_created . ':' . $task_name); } $logger->log_info(__METHOD__, 'End'); return true; }
$logger->log('**BACKUP THEMES TASK**'); write_response_processing("Backup themes "); set_status('backup_themes', $active, true); $themes_remaining_files_count = $wp_backup->backup_files($backup_job->backup_id, WPBACKITUP__THEMES_ROOT_PATH, 'themes'); $logger->log('Themes remaining:' . $themes_remaining_files_count); if ($themes_remaining_files_count === false) { //ERROR $logger->log_error(__METHOD__, 'Error backing up themes.'); $backup_job->set_task_error('120'); write_fatal_error_status('120'); //cleanup_on_failure( $wp_backup->backup_project_path ); end_backup(120, false); } else { if ($themes_remaining_files_count > 0) { //CONTINUE $logger->log_info(__METHOD__, 'Continue backing up themes.'); $backup_job->set_task_queued(); } else { //COMPLETE $logger->log_info(__METHOD__, 'Complete - All themes backed up.'); set_status('backup_themes', $complete, false); $backup_job->set_task_complete(); $logger->log('**END BACKUP THEMES TASK**'); } } return; } //Backup the plugins if ('task_backup_plugins' == $current_task) { $logger->log('**BACKUP PLUGINS TASK**'); write_response_processing("Backup plugins ");
$complete = 2; $failure = -1; $warning = -2; $success = 99; //**************************// // SINGLE THREAD BACKUPS // //**************************// $logger_tasks = new WPBackItUp_Logger(false, null, 'debug_tasks'); $backup_process_id = uniqid(); //If there is a queued or active job then add a resume check if ('scheduled' == $this->backup_type) { wp_schedule_single_event(time() + 30, 'wpbackitup_run_cleanup_tasks'); } //Make sure backup is NOT already running before you run the current task if (!WPBackItUp_Backup::start()) { $logger_tasks->log_info(__METHOD__ . '(' . $backup_process_id . ')', 'Cleanup job cant acquire job lock.'); return; //nothing to do } else { $logger_tasks->log_info(__METHOD__ . '(' . $backup_process_id . ')', 'Cleanup job lock acquired.'); } //**************************// //**************************// // Task Handling // //**************************// global $cleanup_job; $cleanup_job = null; $current_task = null; $backup_error = false; $cleanup_job = WPBackItUp_Job::get_job('cleanup'); $logger_tasks->log_info(__METHOD__ . '(' . $backup_process_id . ')', 'Check for available job');
public static function is_authorized() { $permission_logger = new WPBackItUp_Logger(false, null, 'debug_permissions'); $permission_logger->log_info(__METHOD__, 'Begin'); $permission_logger->log_info(__METHOD__, 'User Permissions: ' . current_user_can('manage_options')); if (defined('DOING_CRON')) { $permission_logger->log_info(__METHOD__, 'Doing CRON Constant: ' . DOING_CRON); } else { $permission_logger->log_info(__METHOD__, 'DOING_CRON - NOT defined'); } if (defined('XMLRPC_REQUEST')) { $permission_logger->log_info(__METHOD__, 'XMLRPC_REQUEST Constant: ' . XMLRPC_REQUEST); } else { $permission_logger->log_info(__METHOD__, 'XMLRPC_REQUEST - NOT defined '); } //Check User Permissions or CRON if (!current_user_can('manage_options') && (!defined('DOING_CRON') || !DOING_CRON)) { $permission_logger->log_info(__METHOD__, 'End - NOT AUTHORIZED'); return false; } $permission_logger->log_info(__METHOD__, 'End - SUCCESS'); return true; }
} $logger->log('*END DELETE RESTORE FOLDER*'); $logger->log('*CREATE ROOT RESTORE FOLDER*'); if (!$wp_restore->create_restore_root_folder()) { fatal_error($task, '222', 'Root Restore folder could not be created.'); } $logger->log('*END CREATE RESTORE FOLDER*'); $logger->log('*DELETE STAGED FOLDER*'); if (!$wp_restore->delete_staged_folders()) { fatal_error($task, '222', 'Staged folders could not be deleted.'); } $logger->log('*END DELETE STAGED FOLDER*'); $logger->log('*UPDATE ZIP JOB META*'); //Get the zip list $backup_path_pattern = $wp_restore->get_backup_folder_path() . '/' . $wp_restore->get_backup_name() . '*.zip'; $logger->log_info(__METHOD__, 'Fetch backups pattern:' . $backup_path_pattern); $backup_set = glob($backup_path_pattern); if (is_array($backup_set) && count($backup_set) > 0) { $restore_job->update_job_meta('backup_set', $backup_set); $restore_job->update_job_meta('backup_set_remaining', $backup_set); } else { fatal_error($task, '222', 'No zip files found (pattern):' . $backup_path_pattern); } $logger->log('*END UPDATE ZIP JOB META*'); $logger->log('*UPDATE SITE VALUES META*'); $siteurl = $wp_restore->get_siteurl(); if (false === $siteurl) { fatal_error($task, '207', 'Unable to fetch site url.'); } else { $restore_job->update_job_meta('current_siteurl', $siteurl); }