/** * Gets the queued or active job on top of the stack * - set status to active * * @param $job_name * * @return bool|WPBackItUp_Job */ public static function get_current_job($job_name) { $logger = new WPBackItUp_Logger(false, null, 'debug_job'); $logger->log_info(__METHOD__, 'Begin - Job Name: ' . $job_name); //Get backup on top $args = array('posts_per_page' => 1, 'post_type' => $job_name, 'post_status' => array(self::QUEUED, self::ACTIVE), 'orderby' => 'post_date', 'order' => 'ASC'); $jobs = get_posts($args); $logger->log($jobs); if (is_array($jobs) && count($jobs) > 0) { $logger->log_info(__METHOD__, 'Job found:' . count($jobs)); $backup_job = new WPBackItUp_Job_v2($jobs[0]); if (self::QUEUED == $backup_job->job_status) { $backup_job->set_job_status_active(); } return $backup_job; } $logger->log_info(__METHOD__, 'No jobs found.'); $logger->log_info(__METHOD__, 'End'); return false; }
/** * Return the restore status and try run tasks */ public function ajax_get_restore_status() { //@session_start(); @session_write_close(); // Check permissions if (!self::is_authorized()) { exit('Access denied.'); } $event_logger = new WPBackItUp_Logger(false, null, 'debug_events'); $event_logger->log_info(__METHOD__, 'User Permissions: ' . current_user_can('manage_options')); //Check permissions if (current_user_can('manage_options')) { global $restore_job, $process_id; $process_id = uniqid(); $event_logger->log_info(__METHOD__ . '(' . $process_id . ')', 'Begin'); $this->backup_type = 'manual'; //Is there a restore job available and is it already running $restore_job = WPBackItUp_Job_v2::get_current_job('restore'); if (false !== $restore_job && $restore_job->get_lock('restore-lock')) { $event_logger->log_info(__METHOD__ . '(' . $process_id . ')', 'Job Lock Acquired.'); //Try Run Next Backup Tasks $event_logger->log_info(__METHOD__ . '(' . $process_id . ')', 'Try Run restore task'); include_once WPBACKITUP__PLUGIN_PATH . '/lib/includes/job_restore.php'; $restore_job->release_lock(); $event_logger->log_info(__METHOD__ . '(' . $process_id . ')', 'End Try Run Backup Task'); } else { $event_logger->log_info(__METHOD__ . '(' . $process_id . ')', 'Job Lock NOT Acquired.'); } //return status $log = WPBACKITUP__PLUGIN_PATH . '/logs/restore_status.log'; if (file_exists($log)) { //Probably should use the database instead now. readfile($log); $event_logger->log_info(__METHOD__ . '(' . $process_id . ')', 'Status sent to browser.'); } } $event_logger->log_info(__METHOD__ . '(' . $process_id . ')', 'End'); exit(0); }
//Make sure backup folder is secured $file_system = new WPBackItUp_FileSystem(); //Make sure backup folder is secured $backup_dir = WPBACKITUP__CONTENT_PATH . '/' . WPBACKITUP__BACKUP_FOLDER; $file_system->secure_folder($backup_dir); //--Check restore folder folders $restore_dir = WPBACKITUP__CONTENT_PATH . '/' . WPBACKITUP__RESTORE_FOLDER; $file_system->secure_folder($restore_dir); //Make sure logs folder is secured $logs_dir = WPBACKITUP__PLUGIN_PATH . '/logs/'; $file_system->secure_folder($logs_dir); $logger->log('**END SECURE FOLDERS**'); $logger->log('**CLEANUP OLD JOBS**'); $backup_job_purge_count = WPBackItUp_Job_v2::purge_completed_jobs('backup'); $logger->log('Backup job records purged:' . $backup_job_purge_count); $cleanup_job_purge_count = WPBackItUp_Job_v2::purge_completed_jobs('cleanup'); $logger->log('Cleanup job records purged:' . $cleanup_job_purge_count); $logger->log('**END CLEANUP OLD JOBS**'); $cleanup_job->set_task_complete(); } end_job(null, true); //*** END SCHEDULED TASKS ***// /******************/ /*** Functions ***/ /******************/ function get_job_name($timestamp) { $fileUTCDateTime = $timestamp; //current_time( 'timestamp' ); $localDateTime = date_i18n('Y-m-d-His', $fileUTCDateTime); $job_name = 'cleanup_' . $localDateTime;
if (false !== $current_user) { $user_full_name = $current_user->first_name . ' ' . $current_user->last_name; } //Not going to use the restore Point SQL because IF the import failed then DB may be intact if (!$wp_restore->restore_database()) { fatal_error($task, '212', 'Database NOT restored.'); //Do we want to recover the DB ? } end_status($task); $logger->log('**END RESTORE DATABASE**'); $logger->log('*UPDATE DATABASE VALUES*'); //update the session cookie wp_set_auth_cookie($user_id, true); //Cancel any jobs that were in the restored DB WPBackItUp_Job_v2::cancel_all_jobs('backup'); WPBackItUp_Job_v2::cancel_all_jobs('cleanup'); start_status('update_user'); //Restored DB so current user may not be there. //If current user id doesnt exist then create it //if exists update to current properties if (!$wp_restore->update_credentials($user_id, $user_full_name, $current_user_login, $current_user_pass_hash, $current_user_email, $table_prefix)) { warning('215', 'Cant update user credentials.'); } end_status('update_user'); start_status('update_site_info'); if (!$wp_restore->update_siteurl($table_prefix, $current_siteurl)) { warning('213', 'Cant update site url.'); } if (!$wp_restore->update_homeurl($table_prefix, $current_homeurl)) { warning('214', 'Cant update home url.'); }