$wp_backup->cleanup_old_backups();
    $logger->log('**END CLEAN OLD BACKUPS**');
    $logger->log('**CLEAN OLD RESTORES**');
    //Cleanup any folders that exceed retention limit
    $wp_restore = new WPBackItUp_Restore($logger, $job_name, null);
    $wp_restore->delete_restore_folder();
    $logger->log('**END CLEAN OLD RESTORES**');
    $logger->log('**PURGE OLD FILES**');
    $wp_backup->purge_old_files();
    $logger->log('**END PURGE OLD FILES**');
    $logger->log('**SECURE FOLDERS**');
    //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();
}
 public function create_restore_root_folder()
 {
     $this->logger->log_info(__METHOD__, 'Create restore folder.' . $this->restore_root_folder_path);
     $fileSystem = new WPBackItUp_FileSystem($this->logger);
     if ($fileSystem->create_dir($this->restore_root_folder_path)) {
         //Secure restore folder
         $fileSystem->secure_folder($this->restore_root_folder_path);
         return true;
     } else {
         return false;
     }
 }
 /**
  * Activation action -  will run ONLY on activation
  */
 public static function activate()
 {
     try {
         //add cron task for once per hour starting in 1 hour
         if (!wp_next_scheduled('wpbackitup_queue_scheduled_jobs')) {
             wp_schedule_event(time() + 3600, 'hourly', 'wpbackitup_queue_scheduled_jobs');
         }
         require_once WPBACKITUP__PLUGIN_PATH . '/lib/includes/class-filesystem.php';
         $file_system = new WPBackItUp_FileSystem();
         //Check backup folder folders
         $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);
         $logs_dir = WPBACKITUP__PLUGIN_PATH . '/logs/';
         $file_system->secure_folder($logs_dir);
         //Make sure they exist now
         if (!is_dir($backup_dir) || !is_dir($restore_dir)) {
             exit('WP BackItUp was not able to create the required backup and restore folders.');
         }
         //Run database update routines
         self::maybe_update();
         do_action('wpbackitup_check_license', true);
     } catch (Exception $e) {
         exit('WP BackItUp encountered an error during activation.</br>' . $e->getMessage());
     }
 }