本文整理汇总了PHP中pb_backupbuddy::set_status_serial方法的典型用法代码示例。如果您正苦于以下问题:PHP pb_backupbuddy::set_status_serial方法的具体用法?PHP pb_backupbuddy::set_status_serial怎么用?PHP pb_backupbuddy::set_status_serial使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类pb_backupbuddy
的用法示例。
在下文中一共展示了pb_backupbuddy::set_status_serial方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: start_backup_process
function start_backup_process($type, $trigger = 'manual', $pre_backup = array(), $post_backup = array(), $schedule_title = '', $serial_override = '', $export_plugins = array())
{
if ($serial_override != '') {
$serial = $serial_override;
} else {
$serial = pb_backupbuddy::random_string(10);
}
pb_backupbuddy::set_status_serial($serial);
// Default logging serial.
pb_backupbuddy::status('details', __('Starting backup process function.', 'it-l10n-backupbuddy'));
pb_backupbuddy::status('details', __('Peak memory usage', 'it-l10n-backupbuddy') . ': ' . round(memory_get_peak_usage() / 1048576, 3) . ' MB');
if ($this->pre_backup($serial, $type, $trigger, $pre_backup, $post_backup, $schedule_title, $export_plugins) === false) {
return false;
}
if ($trigger == 'scheduled' && pb_backupbuddy::$options['email_notify_scheduled_start'] != '') {
pb_backupbuddy::status('details', __('Sending scheduled backup start email notification if applicable.', 'it-l10n-backupbuddy'));
pb_backupbuddy::$classes['core']->mail_notify_scheduled('start', __('Scheduled backup', 'it-l10n-backupbuddy') . ' (' . $this->_backup['schedule_title'] . ') has begun.');
}
if (pb_backupbuddy::$options['backup_mode'] == '2' || $trigger == 'scheduled') {
// Modern mode with crons.
pb_backupbuddy::status('message', 'Running in modern backup mode based on settings. Mode value: `' . pb_backupbuddy::$options['backup_mode'] . '`. Trigger: `' . $trigger . '`.');
// If using alternate cron on a manually triggered backup then skip running the cron on this pageload to avoid header already sent warnings.
if ($trigger == 'manual' && defined('ALTERNATE_WP_CRON') && ALTERNATE_WP_CRON) {
$this->cron_next_step(false);
} else {
$this->cron_next_step(true);
}
} else {
// Classic mode; everything runs in this single PHP page load.
pb_backupbuddy::status('message', 'Running in classic backup mode based on settings.');
$this->process_backup($this->_backup['serial'], $trigger);
}
return true;
}
示例2: process_backup
function process_backup($serial = 'blank')
{
pb_backupbuddy::set_status_serial($serial);
pb_backupbuddy::status('details', '--- New PHP process.');
pb_backupbuddy::set_greedy_script_limits();
pb_backupbuddy::status('message', 'Running process for serial `' . $serial . '`...');
require_once pb_backupbuddy::plugin_path() . '/classes/backup.php';
$newBackup = new pb_backupbuddy_backup();
$newBackup->process_backup($serial);
}
示例3: process_backup
function process_backup($serial = 'blank')
{
pb_backupbuddy::set_status_serial($serial);
pb_backupbuddy::set_greedy_script_limits();
pb_backupbuddy::status('message', 'Processing cron step for serial `' . $serial . '`...');
if (!isset(pb_backupbuddy::$classes['backup'])) {
require_once pb_backupbuddy::plugin_path() . '/classes/backup.php';
pb_backupbuddy::$classes['backup'] = new pb_backupbuddy_backup();
}
pb_backupbuddy::$classes['backup']->process_backup($serial);
}
示例4: rollback
public function rollback()
{
pb_backupbuddy::$ui->ajax_header();
pb_backupbuddy::load_script('jquery');
echo '<div id="pb_backupbuddy_working" style="width: 100px; margin-bottom: 30px;"><br><center><img src="' . pb_backupbuddy::plugin_url() . '/images/working.gif" title="Working... Please wait as this may take a moment..."></center></div>';
?>
<script>
function pb_status_append( status_string ) {
var win = window.dialogArguments || opener || parent || top;
win.pb_status_append( status_string );
}
function pb_status_undourl( undo_url ) {
var win = window.dialogArguments || opener || parent || top;
win.pb_status_undourl( undo_url );
}
var win = window.dialogArguments || opener || parent || top;
win.window.scrollTo(0,0);
</script>
<?php
global $pb_backupbuddy_js_status;
$pb_backupbuddy_js_status = true;
pb_backupbuddy::set_status_serial('restore');
$step = strip_tags(pb_backupbuddy::_GET('step'));
if ('' == $step || !is_numeric($step)) {
$step = 0;
}
$backupFile = strip_tags(pb_backupbuddy::_GET('archive'));
if ('' == $backupFile) {
pb_backupbuddy::alert('The backup file to restore from must be specified.');
die;
}
$stepFile = pb_backupbuddy::plugin_path() . '/controllers/pages/rollback/_step' . $step . '.php';
if (!file_exists($stepFile)) {
pb_backupbuddy::alert('Error #849743. Invalid roll back step `' . htmlentities(pb_backupbuddy::_GET('step')) . '` (' . $step . ').');
die;
}
require $stepFile;
echo '<br><br><br>';
echo '<script type="text/javascript">jQuery("#pb_backupbuddy_working").hide();</script>';
pb_backupbuddy::$ui->ajax_footer();
pb_backupbuddy::flush();
die;
}
示例5: start_backup_process
function start_backup_process($profile, $trigger = 'manual', $pre_backup = array(), $post_backup = array(), $schedule_title = '', $serial_override = '', $export_plugins = array(), $deployDirection = '', $deployDestinationSettings = '')
{
// Load profile defaults.
$profile = array_merge(pb_backupbuddy::settings('profile_defaults'), $profile);
foreach ($profile as $profile_item_name => &$profile_item) {
// replace non-overridden defaults with actual default value.
if ('-1' == $profile_item) {
// Set to use default so go grab default.
if (isset(pb_backupbuddy::$options['profiles'][0][$profile_item_name])) {
$profile_item = pb_backupbuddy::$options['profiles'][0][$profile_item_name];
// Grab value from defaults profile and replace with it.
}
}
}
// Handle backup mode.
$backup_mode = pb_backupbuddy::$options['backup_mode'];
// Load global default mode.
if ('1' == $profile['backup_mode']) {
// Profile forces classic.
$backup_mode = '1';
} elseif ('2' == $profile['backup_mode']) {
// Profiles forces modern.
$backup_mode = '2';
}
$profile['backup_mode'] = $backup_mode;
unset($backup_mode);
// If classic mode then we need to redirect output to displaying inline via JS instead of AJAX-based.
if ('1' == $profile['backup_mode']) {
//global $pb_backupbuddy_js_status;
//$pb_backupbuddy_js_status = true;
}
if ($serial_override != '') {
$serial = $serial_override;
} else {
$serial = pb_backupbuddy::random_string(10);
}
pb_backupbuddy::set_status_serial($serial);
// Default logging serial.
global $wp_version;
pb_backupbuddy::status('details', 'BackupBuddy v' . pb_backupbuddy::settings('version') . ' using WordPress v' . $wp_version . ' on ' . PHP_OS . '.');
//pb_backupbuddy::status( 'details', __('Peak memory usage', 'it-l10n-backupbuddy' ) . ': ' . round( memory_get_peak_usage() / 1048576, 3 ) . ' MB' );
$type = $profile['type'];
$archiveFile = $this->calculateArchiveFilename($serial, $type);
//if ( 'pull' != $deployDirection ) {
if ($this->pre_backup($serial, $archiveFile, $profile, $trigger, $pre_backup, $post_backup, $schedule_title, $export_plugins, $deployDirection, $deployDestinationSettings) === false) {
pb_backupbuddy::status('details', 'pre_backup() function failed.');
return false;
}
/*
} else { // PULL deployment.
pb_backupbuddy::status( 'details', 'About to load fileoptions data in create mode.' );
require_once( pb_backupbuddy::plugin_path() . '/classes/fileoptions.php' );
pb_backupbuddy::status( 'details', 'Fileoptions instance #40.' );
$this->_backup_options = new pb_backupbuddy_fileoptions( backupbuddy_core::getLogDirectory() . 'fileoptions/' . $serial . '.txt', $read_only = false, $ignore_lock = false, $create_file = true );
if ( true !== ( $result = $this->_backup_options->is_ok() ) ) {
pb_backupbuddy::status( 'error', __('Fatal Error #38293. Unable to access fileoptions data.', 'it-l10n-backupbuddy' ) . ' Error: ' . $result );
pb_backupbuddy::status( 'haltScript', '' ); // Halt JS on page.
return false;
}
pb_backupbuddy::status( 'details', 'Fileoptions data loaded.' );
$this->_backup = &$this->_backup_options->options; // Set reference.
$this->_backup['serial'] = $serial;
}
*/
if ($trigger == 'scheduled' && pb_backupbuddy::$options['email_notify_scheduled_start'] != '') {
pb_backupbuddy::status('details', __('Sending scheduled backup start email notification if applicable.', 'it-l10n-backupbuddy'));
backupbuddy_core::mail_notify_scheduled($serial, 'start', __('Scheduled backup', 'it-l10n-backupbuddy') . ' (' . $this->_backup['schedule_title'] . ') has begun.');
}
if ($profile['backup_mode'] == '2') {
// Modern mode with crons.
pb_backupbuddy::status('message', 'Running in modern backup mode based on settings. Mode value: `' . $profile['backup_mode'] . '`. Trigger: `' . $trigger . '`.');
unset($this->_backup_options);
// File unlocking is handled on deconstruction. Make sure unlocked before firing off another cron spawn.
// If using alternate cron on a manually triggered backup then skip running the cron on this pageload to avoid header already sent warnings.
if ($trigger != 'manual' || defined('ALTERNATE_WP_CRON') && ALTERNATE_WP_CRON) {
$this->cron_next_step(false);
} else {
//$this->cron_next_step( true );
$this->cron_next_step(false);
// as of Aug 9, 2013 no longer spawn the cron. Caused very odd issue of double code runs.
}
} else {
// Classic mode; everything runs in this single PHP page load.
pb_backupbuddy::status('message', 'Running in classic backup mode based on settings.');
$this->process_backup($this->_backup['serial'], $trigger);
}
return true;
}
示例6: array
}
}
}
$tests[] = array('test' => 'WordPress wp-config.php file (full backups only)', 'pass' => $pass);
}
// end if full backup.
// Get zip scan log details.
pb_backupbuddy::status('details', 'Retrieving zip scan log.');
$temp_details = pb_backupbuddy::get_status('zipbuddy_test');
// Get zipbuddy scan log.
$scan_log = array();
foreach ($temp_details as $temp_detail) {
$scan_log[] = json_decode($temp_detail)->{'data'};
}
if (true !== $skipLogRedirect) {
pb_backupbuddy::set_status_serial($previous_status_serial);
// Stop redirecting log to a specific file & set back to what it was prior.
pb_backupbuddy::status('details', 'Stopped temporary redirection of status logging.');
}
pb_backupbuddy::status('details', 'Calculating integrity scan status,');
// Check for any failed tests.
$is_ok = true;
$integrity_description = '';
foreach ($tests as $test) {
if ($test['pass'] !== true) {
$is_ok = false;
$error = 'Error #389434. Integrity test FAILED. Test: `' . $test['test'] . '`. ';
pb_backupbuddy::status('error', $error);
$integrity_description .= $error;
}
}
示例7: backup_integrity_check
function backup_integrity_check($file, $fileoptions = '', $options = array())
{
$options = array_merge(array('skip_database_dump' => '0'), $options);
pb_backupbuddy::status('details', 'Started backup_integrity_check() function.');
$serial = $this->get_serial_from_file($file);
// User selected to rescan a file.
if (pb_backupbuddy::_GET('reset_integrity') == $serial) {
pb_backupbuddy::alert('Rescanning backup integrity for backup file `' . basename($file) . '`');
}
if ($fileoptions != '') {
$backup_options =& $fileoptions;
} else {
require_once pb_backupbuddy::plugin_path() . '/classes/fileoptions.php';
$backup_options = new pb_backupbuddy_fileoptions(pb_backupbuddy::$options['log_directory'] . 'fileoptions/' . $serial . '.txt', $read_only = false, $ignore_lock = false, $create_file = true);
// Will create file to hold integrity data if nothing exists.
if (true !== ($result = $backup_options->is_ok())) {
pb_backupbuddy::status('error', __('Fatal Error #9034 C. Unable to access fileoptions data.', 'it-l10n-backupbuddy') . ' Error on file `' . pb_backupbuddy::$options['log_directory'] . 'fileoptions/' . $serial . '.txt' . '`: ' . $result);
pb_backupbuddy::status('action', 'halt_script');
// Halt JS on page.
return false;
}
if (isset($backup_options->options['profile'])) {
$options = $backup_options->options['profile'];
$options = array_merge(pb_backupbuddy::settings('profile_defaults'), $options);
}
}
if (isset($backup_options->options['integrity']) && count($backup_options->options['integrity']) > 0 && pb_backupbuddy::_GET('reset_integrity') != $serial) {
// Already have integrity data and NOT resetting this one.
pb_backupbuddy::status('details', 'Integrity data for backup `' . $serial . '` is cached; not scanning again.');
return true;
} elseif (pb_backupbuddy::_GET('reset_integrity') == $serial) {
// Resetting this one.
pb_backupbuddy::status('details', 'Resetting backup integrity stats for backup with serial `' . $serial . '`.');
} else {
// No integrity data; not resetting. Just keep going...
}
if (pb_backupbuddy::$options['profiles'][0]['integrity_check'] == '0' && pb_backupbuddy::_GET('reset_integrity') == '') {
// Integrity checking disabled. Allows run if manually rescanning on backups page.
pb_backupbuddy::status('details', 'Integrity check disabled. Skipping scan.');
$file_stats = @stat($file);
if ($file_stats === false) {
// stat failure.
pb_backupbuddy::status('error', 'Error #4539774. Unable to get file details ( via stat() ) for file `' . $file . '`. The file may be corrupt or too large for the server.');
$file_size = 0;
$file_modified = 0;
} else {
// stat success.
$file_size = $file_stats['size'];
$file_modified = $file_stats['mtime'];
}
unset($file_stats);
$integrity = array('status' => 'Unknown', 'tests' => array(), 'scan_time' => 0, 'detected_type' => 'unknown', 'size' => $file_size, 'modified' => $file_modified, 'file' => basename($file), 'comment' => false);
$backup_options->options['integrity'] = array_merge(pb_backupbuddy::settings('backups_integrity_defaults'), $integrity);
$backup_options->save();
return true;
}
//***** BEGIN CALCULATING STATUS DETAILS.
$backup_type = '';
if (!isset(pb_backupbuddy::$classes['zipbuddy'])) {
require_once pb_backupbuddy::plugin_path() . '/lib/zipbuddy/zipbuddy.php';
pb_backupbuddy::$classes['zipbuddy'] = new pluginbuddy_zipbuddy(pb_backupbuddy::$options['backup_directory']);
}
pb_backupbuddy::status('details', 'Redirecting status logging temporarily.');
$previous_status_serial = pb_backupbuddy::get_status_serial();
// Store current status serial setting to reset back later.
pb_backupbuddy::set_status_serial('zipbuddy_test');
// Redirect logging output to a certain log file.
// Look for comment.
pb_backupbuddy::status('details', 'Verifying comment in zip archive.');
$raw_comment = pb_backupbuddy::$classes['zipbuddy']->get_comment($file);
$comment = pb_backupbuddy::$classes['core']->normalize_comment_data($raw_comment);
$comment = $comment['note'];
$tests = array();
// Check for DAT file.
$pass = false;
pb_backupbuddy::status('details', 'Verifying DAT file in zip archive.');
if (pb_backupbuddy::$classes['zipbuddy']->file_exists($file, 'wp-content/uploads/backupbuddy_temp/' . $serial . '/backupbuddy_dat.php') === true) {
// Post 2.0 full backup
$backup_type = 'full';
$pass = true;
}
if (pb_backupbuddy::$classes['zipbuddy']->file_exists($file, 'wp-content/uploads/temp_' . $serial . '/backupbuddy_dat.php') === true) {
// Pre 2.0 full backup
$backup_type = 'full';
$pass = true;
}
if (pb_backupbuddy::$classes['zipbuddy']->file_exists($file, 'backupbuddy_dat.php') === true) {
// DB backup
$backup_type = 'db';
$pass = true;
}
$tests[] = array('test' => 'BackupBackup data file exists', 'pass' => $pass);
// Skip database checks if needed.
//if ( $options['skip_database_dump'] != '1' ) {
// Check for DB SQL file.
$pass = false;
pb_backupbuddy::status('details', 'Verifying database SQL file in zip archive.');
if ($options['skip_database_dump'] == '1') {
pb_backupbuddy::status('warning', 'WARNING: Database .SQL file does NOT exist because the database dump has been set to be SKIPPED based on settings. Use with cuation!');
} else {
//.........这里部分代码省略.........
示例8:
<?php
// Incoming vars:
// $serial, $specialAction = '', $initRetryCount = 0, $sqlFile = ''
$init_wait_retry_count = $initRetryCount;
$echoNotWrite = $echo;
// Forward all logging to this serial file.
pb_backupbuddy::set_status_serial($serial);
if (true == get_transient('pb_backupbuddy_stop_backup-' . $serial)) {
pb_backupbuddy::status('message', 'Backup STOPPED. Post backup cleanup step has been scheduled to clean up any temporary files.', $serial);
require_once pb_backupbuddy::plugin_path() . '/classes/fileoptions.php';
$fileoptions_file = backupbuddy_core::getLogDirectory() . 'fileoptions/' . $serial . '.txt';
pb_backupbuddy::status('details', 'Fileoptions instance #30.');
$backup_options = new pb_backupbuddy_fileoptions($fileoptions_file, false, $ignore_lock = true);
if (true !== ($result = $backup_options->is_ok())) {
pb_backupbuddy::status('error', 'Unable to access fileoptions file `' . $fileoptions_file . '`.', $serial);
}
// Wipe backup file.
if (isset($backup_options->options['archive_file']) && file_exists($backup_options->options['archive_file'])) {
// Final zip file.
$unlink_result = @unlink($backup_options->options['archive_file']);
if (true === $unlink_result) {
pb_backupbuddy::status('details', 'Deleted stopped backup ZIP file.', $serial);
} else {
pb_backupbuddy::status('error', 'Unable to delete stopped backup file. You should delete it manually as it may be damaged from stopping mid-backup. File to delete: `' . $backup_options->options['archive_file'] . '`.', $serial);
}
} else {
pb_backupbuddy::status('details', 'Archive file not found. Not deleting.', $serial);
}
// NOTE: fileoptions file will be wiped by periodic cleanup. We need to keep this for now...
delete_transient('pb_backupbuddy_stop_backup-' . $serial);
示例9: backup_integrity_check
function backup_integrity_check($file)
{
pb_backupbuddy::status('details', 'Started backup_integrity_check() function.');
$serial = $this->get_serial_from_file($file);
// User selected to rescan a file.
if (pb_backupbuddy::_GET('reset_integrity') == $serial) {
pb_backupbuddy::alert('Rescanning backup integrity for backup file `' . basename($file) . '`');
}
if (isset(pb_backupbuddy::$options['backups'][$serial]['integrity']) && count(pb_backupbuddy::$options['backups'][$serial]['integrity']) > 0 && pb_backupbuddy::_GET('reset_integrity') != $serial) {
// Already have integrity data and NOT resetting this one.
pb_backupbuddy::status('details', 'Integrity data for backup `' . $serial . '` is cached; not scanning again.');
return true;
} elseif (pb_backupbuddy::_GET('reset_integrity') == $serial) {
// Resetting this one.
pb_backupbuddy::status('details', 'Resetting backup integrity stats for backup with serial `' . $serial . '`.');
} else {
// No integrity data; not resetting. Just keep going...
}
if (pb_backupbuddy::$options['integrity_check'] == '0') {
// Integrity checking disabled.
pb_backupbuddy::status('details', 'Integrity check disabled. Skipping scan.');
$file_stats = @stat($file);
if ($file_stats === false) {
// stat failure.
pb_backupbuddy::status('error', 'Error #4539774. Unable to get file details ( via stat() ) for file `' . $file . '`. The file may be corrupt or too large for the server.');
$file_size = 0;
$file_modified = 0;
} else {
// stat success.
$file_size = $file_stats['size'];
$file_modified = $file_stats['mtime'];
}
unset($file_stats);
$integrity = array('status' => 'Unknown', 'status_details' => __('Integrity checking disabled based on settings. This file has not been verified.', 'it-l10n-backupbuddy'), 'scan_time' => 0, 'detected_type' => 'unknown', 'size' => $file_size, 'modified' => $file_modified, 'file' => basename($file), 'comment' => false);
pb_backupbuddy::$options['backups'][$serial]['integrity'] = array_merge(pb_backupbuddy::settings('backups_integrity_defaults'), $integrity);
pb_backupbuddy::save();
return true;
}
//***** BEGIN CALCULATING STATUS DETAILS.
// Status defaults.
$status_details = array('found_dat' => false, 'found_sql' => false, 'found_wpconfig' => false, 'scan_log' => '');
$backup_type = '';
if (!isset(pb_backupbuddy::$classes['zipbuddy'])) {
require_once pb_backupbuddy::plugin_path() . '/lib/zipbuddy/zipbuddy.php';
pb_backupbuddy::$classes['zipbuddy'] = new pluginbuddy_zipbuddy(pb_backupbuddy::$options['backup_directory']);
}
pb_backupbuddy::status('details', 'Redirecting status logging temporarily.');
$previous_status_serial = pb_backupbuddy::get_status_serial();
// Store current status serial setting to reset back later.
pb_backupbuddy::set_status_serial('zipbuddy_test');
// Redirect logging output to a certain log file.
// Look for comment.
pb_backupbuddy::status('details', 'Verifying comment in zip archive.');
$raw_comment = pb_backupbuddy::$classes['zipbuddy']->get_comment($file);
$comment = pb_backupbuddy::$classes['core']->normalize_comment_data($raw_comment);
$comment = $comment['note'];
// Check for DAT file.
pb_backupbuddy::status('details', 'Verifying DAT file in zip archive.');
if (pb_backupbuddy::$classes['zipbuddy']->file_exists($file, 'wp-content/uploads/backupbuddy_temp/' . $serial . '/backupbuddy_dat.php') === true) {
// Post 2.0 full backup
$status_details['found_dat'] = true;
$backup_type = 'full';
}
if (pb_backupbuddy::$classes['zipbuddy']->file_exists($file, 'wp-content/uploads/temp_' . $serial . '/backupbuddy_dat.php') === true) {
// Pre 2.0 full backup
$status_details['found_dat'] = true;
$backup_type = 'full';
}
if (pb_backupbuddy::$classes['zipbuddy']->file_exists($file, 'backupbuddy_dat.php') === true) {
// DB backup
$status_details['found_dat'] = true;
$backup_type = 'db';
}
// Check for DB SQL file.
pb_backupbuddy::status('details', 'Verifying database SQL file in zip archive.');
if (pb_backupbuddy::$classes['zipbuddy']->file_exists($file, 'wp-content/uploads/backupbuddy_temp/' . $serial . '/db_1.sql') === true) {
// post 2.0 full backup
$status_details['found_sql'] = true;
$backup_type = 'full';
}
if (pb_backupbuddy::$classes['zipbuddy']->file_exists($file, 'wp-content/uploads/temp_' . $serial . '/db.sql') === true) {
// pre 2.0 full backup
$status_details['found_sql'] = true;
$backup_type = 'full';
}
if (pb_backupbuddy::$classes['zipbuddy']->file_exists($file, 'db_1.sql') === true) {
// db only backup 2.0+
$status_details['found_sql'] = true;
$backup_type = 'db';
}
if (pb_backupbuddy::$classes['zipbuddy']->file_exists($file, 'db.sql') === true) {
// db only backup pre-2.0
$status_details['found_sql'] = true;
$backup_type = 'db';
}
// Check for WordPress config file.
pb_backupbuddy::status('details', 'Verifying WordPress wp-config.php configuration file in zip archive.');
if (pb_backupbuddy::$classes['zipbuddy']->file_exists($file, 'wp-config.php') === true) {
$status_details['found_wpconfig'] = true;
$backup_type = 'full';
//.........这里部分代码省略.........
示例10: start_backup_process
function start_backup_process($profile, $trigger = 'manual', $pre_backup = array(), $post_backup = array(), $schedule_title = '', $serial_override = '', $export_plugins = array())
{
// Load profile defaults.
$profile = array_merge(pb_backupbuddy::settings('profile_defaults'), $profile);
foreach ($profile as $profile_item_name => &$profile_item) {
// replace non-overridden defaults with actual default value.
if ('-1' == $profile_item) {
// Set to use default so go grab default.
if (isset(pb_backupbuddy::$options['profiles'][0][$profile_item_name])) {
$profile_item = pb_backupbuddy::$options['profiles'][0][$profile_item_name];
// Grab value from defaults profile and replace with it.
}
}
}
// Handle backup mode.
$backup_mode = pb_backupbuddy::$options['backup_mode'];
// Load global default mode.
if ('1' == $profile['backup_mode']) {
// Profile forces classic.
$backup_mode = '1';
} elseif ('2' == $profile['backup_mode']) {
// Profiles forces modern.
$backup_mode = '2';
}
$profile['backup_mode'] = $backup_mode;
unset($backup_mode);
// If classic mode then we need to redirect output to displaying inline via JS instead of AJAX-based.
if ('1' == $profile['backup_mode']) {
//global $pb_backupbuddy_js_status;
//$pb_backupbuddy_js_status = true;
}
if ($serial_override != '') {
$serial = $serial_override;
} else {
$serial = pb_backupbuddy::random_string(10);
}
pb_backupbuddy::set_status_serial($serial);
// Default logging serial.
global $wp_version;
pb_backupbuddy::status('details', 'BackupBuddy v' . pb_backupbuddy::settings('version') . ' using WordPress v' . $wp_version . ' on ' . PHP_OS . '.');
//pb_backupbuddy::status( 'details', __('Peak memory usage', 'it-l10n-backupbuddy' ) . ': ' . round( memory_get_peak_usage() / 1048576, 3 ) . ' MB' );
if ($this->pre_backup($serial, $profile, $trigger, $pre_backup, $post_backup, $schedule_title, $export_plugins) === false) {
pb_backupbuddy::status('details', 'pre_backup() function failed.');
return false;
}
if ($trigger == 'scheduled' && pb_backupbuddy::$options['email_notify_scheduled_start'] != '') {
pb_backupbuddy::status('details', __('Sending scheduled backup start email notification if applicable.', 'it-l10n-backupbuddy'));
backupbuddy_core::mail_notify_scheduled($serial, 'start', __('Scheduled backup', 'it-l10n-backupbuddy') . ' (' . $this->_backup['schedule_title'] . ') has begun.');
}
if ($profile['backup_mode'] == '2') {
// Modern mode with crons.
pb_backupbuddy::status('message', 'Running in modern backup mode based on settings. Mode value: `' . $profile['backup_mode'] . '`. Trigger: `' . $trigger . '`.');
unset($this->_backup_options);
// File unlocking is handled on deconstruction. Make sure unlocked before firing off another cron spawn.
// If using alternate cron on a manually triggered backup then skip running the cron on this pageload to avoid header already sent warnings.
if ($trigger != 'manual' || defined('ALTERNATE_WP_CRON') && ALTERNATE_WP_CRON) {
$this->cron_next_step(false);
} else {
//$this->cron_next_step( true );
$this->cron_next_step(false);
// as of Aug 9, 2013 no longer spawn the cron. Caused very odd issue of double code runs.
}
} else {
// Classic mode; everything runs in this single PHP page load.
pb_backupbuddy::status('message', 'Running in classic backup mode based on settings.');
$this->process_backup($this->_backup['serial'], $trigger);
}
return true;
}
示例11: pb_status_undourl
win.pb_status_append( status_string );
}
function pb_status_undourl( undo_url ) {
var win = window.dialogArguments || opener || parent || top;
win.pb_status_undourl( undo_url );
}
var win = window.dialogArguments || opener || parent || top;
win.window.scrollTo(0,0);
</script>
<?php
global $pb_backupbuddy_js_status;
$pb_backupbuddy_js_status = true;
pb_backupbuddy::set_status_serial('deploy');
$step = strip_tags(pb_backupbuddy::_GET('step'));
if (!ctype_alnum($step)) {
die('Error #8549845: Invalid step `' . htmlentities($step) . '`.');
}
$stepFile = pb_backupbuddy::plugin_path() . '/controllers/pages/deploy/_' . $step . '.php';
if (!file_exists($stepFile)) {
pb_backupbuddy::alert('Error #3298238. Invalid deploy step `' . htmlentities(pb_backupbuddy::_GET('step')) . '` (' . $step . ').');
die;
}
require $stepFile;
echo '<br><br><br>';
echo '<script type="text/javascript">jQuery("#pb_backupbuddy_working").hide();</script>';
pb_backupbuddy::$ui->ajax_footer();
pb_backupbuddy::flush();
die;
示例12: restore_file_restore
public function restore_file_restore()
{
$success = false;
pb_backupbuddy::$ui->ajax_header(true, false);
// js, no padding
?>
<script type="text/javascript">
function pb_status_append( status_string ) {
target_id = 'pb_backupbuddy_status'; // importbuddy_status or pb_backupbuddy_status
if( jQuery( '#' + target_id ).length == 0 ) { // No status box yet so suppress.
return;
}
jQuery( '#' + target_id ).append( "\n" + status_string );
textareaelem = document.getElementById( target_id );
textareaelem.scrollTop = textareaelem.scrollHeight;
}
</script>
<?php
global $pb_backupbuddy_js_status;
$pb_backupbuddy_js_status = true;
echo pb_backupbuddy::status_box('Restoring . . .');
echo '<div id="pb_backupbuddy_working" style="width: 100px;"><br><center><img src="' . pb_backupbuddy::plugin_url() . '/images/working.gif" title="Working... Please wait as this may take a moment..."></center></div>';
pb_backupbuddy::set_status_serial('restore');
global $wp_version;
pb_backupbuddy::status('details', 'BackupBuddy v' . pb_backupbuddy::settings('version') . ' using WordPress v' . $wp_version . ' on ' . PHP_OS . '.');
$archive_file = pb_backupbuddy::_GET('archive');
// archive to extract from.
$files = pb_backupbuddy::_GET('files');
// file to extract.
$files_array = explode(',', $files);
$files = array();
foreach ($files_array as $file) {
if (substr($file, -1) == '/') {
// If directory then add wildcard.
$file = $file . '*';
}
$files[$file] = $file;
}
unset($files_array);
$serial = backupbuddy_core::get_serial_from_file($archive_file);
// serial of archive.
foreach ($files as $file) {
$file = str_replace('*', '', $file);
// Remove any wildcard.
if (file_exists(ABSPATH . $file) && is_dir(ABSPATH . $file)) {
if (($file_count = @scandir(ABSPATH . $file)) && count($file_count) > 2) {
pb_backupbuddy::status('error', __('Error #9036. The destination directory being restored already exists and is NOT empty. The directory will not be restored to prevent inadvertently losing files within the existing directory. Delete existing directory first if you wish to proceed or restore individual files.', 'it-l10n-backupbuddy') . ' Existing directory: `' . ABSPATH . $file . '`.');
echo '<script type="text/javascript">jQuery("#pb_backupbuddy_working").hide();</script>';
pb_backupbuddy::flush();
pb_backupbuddy::$ui->ajax_footer();
die;
}
}
}
require_once pb_backupbuddy::plugin_path() . '/lib/zipbuddy/zipbuddy.php';
$zipbuddy = new pluginbuddy_zipbuddy(backupbuddy_core::getBackupDirectory());
// Calculate temp directory & lock it down.
$temp_dir = get_temp_dir();
$destination = $temp_dir . 'backupbuddy-' . $serial;
if (!file_exists($destination) && false === mkdir($destination, 0777, true)) {
$error = 'Error #458485945: Unable to create temporary location.';
pb_backupbuddy::status('error', $error);
echo '<script type="text/javascript">jQuery("#pb_backupbuddy_working").hide();</script>';
pb_backupbuddy::flush();
pb_backupbuddy::$ui->ajax_footer();
die;
}
// If temp directory is within webroot then lock it down.
$temp_dir = str_replace('\\', '/', $temp_dir);
// Normalize for Windows.
$temp_dir = rtrim($temp_dir, '/\\') . '/';
// Enforce single trailing slash.
if (FALSE !== stristr($temp_dir, ABSPATH)) {
// Temp dir is within webroot.
pb_backupbuddy::anti_directory_browsing($destination);
}
unset($temp_dir);
pb_backupbuddy::status('details', 'Extracting into temporary directory "' . $destination . '".');
pb_backupbuddy::status('details', 'Files to extract: `' . htmlentities(pb_backupbuddy::_GET('files')) . '`.');
// Make sure temp subdirectories exist.
/*
foreach( $files as $file => $null ) {
mkdir( $destination . '/' . basename( $file ), 0777, true );
}
*/
pb_backupbuddy::flush();
$extract_success = true;
$extract_result = $zipbuddy->extract(backupbuddy_core::getBackupDirectory() . $archive_file, $destination, $files);
if (false === $extract_result) {
// failed.
pb_backupbuddy::status('error', 'Error #584984458b. Unable to extract.');
$extract_success = false;
} else {
// success.
// Verify all files/directories to be extracted exist in temp destination directory. If any missing then delete everything and bail out.
foreach ($files as &$file) {
$file = str_replace('*', '', $file);
// Remove any wildcard.
if (!file_exists($destination . '/' . $file)) {
// Cleanup.
//.........这里部分代码省略.........
示例13: backup_integrity_check
public static function backup_integrity_check($file, $fileoptions = '', $options = array(), $skipLogRedirect = false)
{
pb_backupbuddy::status('details', 'Started backup_integrity_check() function.');
$serial = self::get_serial_from_file($file);
// User selected to rescan a file.
if (pb_backupbuddy::_GET('reset_integrity') == $serial) {
pb_backupbuddy::alert('Rescanning backup integrity for backup file `' . basename($file) . '`');
pb_backupbuddy::flush();
}
$options = array_merge(array('skip_database_dump' => '0'), $options);
$scan_notes = array();
// Get backup fileoptions.
if ($fileoptions != '') {
$backup_options =& $fileoptions;
} else {
require_once pb_backupbuddy::plugin_path() . '/classes/fileoptions.php';
$backup_options = new pb_backupbuddy_fileoptions(backupbuddy_core::getLogDirectory() . 'fileoptions/' . $serial . '.txt', $read_only = false, $ignore_lock = false, $create_file = true);
// Will create file to hold integrity data if nothing exists.
if (true !== ($result = $backup_options->is_ok())) {
pb_backupbuddy::status('error', __('Fatal Error #9034 C. Unable to access fileoptions data.', 'it-l10n-backupbuddy') . ' Error on file `' . backupbuddy_core::getLogDirectory() . 'fileoptions/' . $serial . '.txt' . '`: ' . $result);
pb_backupbuddy::status('haltScript', '');
// Halt JS on page.
return false;
}
}
if (isset($backup_options->options['profile'])) {
$options = $backup_options->options['profile'];
$options = array_merge(pb_backupbuddy::settings('profile_defaults'), $options);
}
// Return if cached.
if (isset($backup_options->options['integrity']) && count($backup_options->options['integrity']) > 0 && pb_backupbuddy::_GET('reset_integrity') != $serial) {
// Already have integrity data and NOT resetting this one.
pb_backupbuddy::status('details', 'Integrity data for backup `' . $serial . '` is cached; not scanning again.');
return $backup_options->options['integrity'];
} elseif (pb_backupbuddy::_GET('reset_integrity') == $serial) {
// Resetting this one.
pb_backupbuddy::status('details', 'Resetting backup integrity stats for backup with serial `' . $serial . '`.');
} else {
// No integrity data; not resetting. Just keep going...
}
// Integrity check disabled. Skip.
if (pb_backupbuddy::$options['profiles'][0]['integrity_check'] == '0' && pb_backupbuddy::_GET('reset_integrity') == '' && isset($options['integrity_check']) && $options['integrity_check'] == '0') {
// Integrity checking disabled. Allows run if manually rescanning on backups page.
pb_backupbuddy::status('details', 'Integrity check disabled. Skipping scan.');
$file_stats = @stat($file);
if ($file_stats === false) {
// stat failure.
pb_backupbuddy::status('error', 'Error #4539774. Unable to get file details ( via stat() ) for file `' . $file . '`. The file may be corrupt or too large for the server.');
$file_size = 0;
$file_modified = 0;
} else {
// stat success.
$file_size = $file_stats['size'];
$file_modified = $file_stats['mtime'];
}
unset($file_stats);
$integrity = array('status' => 'Unknown', 'tests' => array(), 'scan_time' => 0, 'detected_type' => 'unknown', 'size' => $file_size, 'modified' => $file_modified, 'file' => basename($file), 'comment' => false);
$backup_options->options['integrity'] = array_merge(pb_backupbuddy::settings('backups_integrity_defaults'), $integrity);
$backup_options->save();
return $backup_options->options['integrity'];
}
//***** BEGIN CALCULATING STATUS DETAILS.
$backup_type = '';
if (!isset(pb_backupbuddy::$classes['zipbuddy'])) {
require_once pb_backupbuddy::plugin_path() . '/lib/zipbuddy/zipbuddy.php';
pb_backupbuddy::$classes['zipbuddy'] = new pluginbuddy_zipbuddy(backupbuddy_core::getBackupDirectory());
}
$previous_status_serial = pb_backupbuddy::get_status_serial();
// Store current status serial setting to reset back later.
if (true !== $skipLogRedirect) {
pb_backupbuddy::status('details', 'Redirecting status logging temporarily.');
pb_backupbuddy::set_status_serial('zipbuddy_test');
// Redirect logging output to a certain log file.
}
// Look for comment.
pb_backupbuddy::status('details', 'Verifying comment in zip archive.');
$raw_comment = pb_backupbuddy::$classes['zipbuddy']->get_comment($file);
$comment = backupbuddy_core::normalize_comment_data($raw_comment);
$comment = $comment['note'];
$tests = array();
pb_backupbuddy::status('details', 'NOTE: It is normal to see several "File not found" messages in the next several log lines.');
// Check for DAT file.
$pass = false;
pb_backupbuddy::status('details', 'Verifying DAT file in zip archive.');
if (pb_backupbuddy::$classes['zipbuddy']->file_exists($file, 'wp-content/uploads/backupbuddy_temp/' . $serial . '/backupbuddy_dat.php') === true) {
// Post 2.0 full backup
$backup_type = 'full';
$pass = true;
}
if (pb_backupbuddy::$classes['zipbuddy']->file_exists($file, 'wp-content/uploads/temp_' . $serial . '/backupbuddy_dat.php') === true) {
// Pre 2.0 full backup
$backup_type = 'full';
$pass = true;
}
if (pb_backupbuddy::$classes['zipbuddy']->file_exists($file, 'backupbuddy_dat.php') === true) {
// DB backup
$backup_type = 'db';
$pass = true;
}
$tests[] = array('test' => 'BackupBuddy data file', 'pass' => $pass);
//.........这里部分代码省略.........
示例14: deploy
public function deploy()
{
pb_backupbuddy::$ui->ajax_header();
pb_backupbuddy::load_script('jquery');
echo '<div id="pb_backupbuddy_working" style="width: 100px; margin-bottom: 30px;"><br><center><img src="' . pb_backupbuddy::plugin_url() . '/images/working.gif" title="Working... Please wait as this may take a moment..."></center></div>';
?>
<script>
function pb_status_append( status_string ) {
var win = window.dialogArguments || opener || parent || top;
win.pb_status_append( status_string );
}
function pb_status_undourl( undo_url ) {
var win = window.dialogArguments || opener || parent || top;
win.pb_status_undourl( undo_url );
}
var win = window.dialogArguments || opener || parent || top;
win.window.scrollTo(0,0);
</script>
<?php
global $pb_backupbuddy_js_status;
$pb_backupbuddy_js_status = true;
pb_backupbuddy::set_status_serial('deploy');
$step = strip_tags(pb_backupbuddy::_GET('step'));
if (!ctype_alnum($step)) {
die('Error #8549845: Invalid step `' . htmlentities($step) . '`.');
}
$stepFile = pb_backupbuddy::plugin_path() . '/controllers/pages/deploy/_' . $step . '.php';
if (!file_exists($stepFile)) {
pb_backupbuddy::alert('Error #3298238. Invalid deploy step `' . htmlentities(pb_backupbuddy::_GET('step')) . '` (' . $step . ').');
die;
}
require $stepFile;
echo '<br><br><br>';
echo '<script type="text/javascript">jQuery("#pb_backupbuddy_working").hide();</script>';
pb_backupbuddy::$ui->ajax_footer();
pb_backupbuddy::flush();
die;
}
示例15: backup_integrity_check
function backup_integrity_check($file)
{
$serial = $this->get_serial_from_file($file);
// User selected to rescan a file.
if (pb_backupbuddy::_GET('reset_integrity') == $serial) {
pb_backupbuddy::alert('Rescanning backup integrity for backup file `' . basename($file) . '`');
}
if (isset(pb_backupbuddy::$options['backups'][$serial]['integrity']) && count(pb_backupbuddy::$options['backups'][$serial]['integrity']) > 0 && pb_backupbuddy::_GET('reset_integrity') != $serial) {
// Already have integrity data and NOT resetting this one.
pb_backupbuddy::status('details', 'Integrity data for backup `' . $serial . '` is cached; not scanning again.');
return;
} elseif (pb_backupbuddy::_GET('reset_integrity') == $serial) {
// Resetting this one.
pb_backupbuddy::status('details', 'Resetting backup integrity stats for backup with serial `' . $serial . '`.');
}
if (pb_backupbuddy::$options['integrity_check'] == '0') {
// Integrity checking disabled.
$file_stats = @stat($file);
if ($file_stats === false) {
// stat failure.
pb_backupbuddy::alert('Error #4539774. Unable to get file details ( via stat() ) for file `' . $file . '`. The file may be corrupt or too large for the server.');
$file_size = 0;
$file_modified = 0;
} else {
// stat success.
$file_size = $file_stats['size'];
$file_modified = $file_stats['mtime'];
}
unset($file_stats);
$integrity = array('status' => 'Unknown', 'status_details' => __('Integrity checking disabled based on settings. This file has not been verified.', 'it-l10n-backupbuddy'), 'scan_time' => 0, 'detected_type' => 'unknown', 'size' => $file_size, 'modified' => $file_modified, 'file' => basename($file), 'comment' => false);
pb_backupbuddy::$options['backups'][$serial]['integrity'] = array_merge(pb_backupbuddy::settings('backups_integrity_defaults'), $integrity);
pb_backupbuddy::save();
return;
}
// Defaults
$integrity_checked = true;
$found_dat = false;
$found_sql = false;
$found_wpc = false;
$backup_type = '';
if (!isset(pb_backupbuddy::$classes['zipbuddy'])) {
require_once pb_backupbuddy::plugin_path() . '/lib/zipbuddy/zipbuddy.php';
pb_backupbuddy::$classes['zipbuddy'] = new pluginbuddy_zipbuddy(pb_backupbuddy::$options['backup_directory']);
}
// Redirect logging output to a certain log file.
pb_backupbuddy::set_status_serial('zipbuddy_test');
// Look for comment.
$comment = pb_backupbuddy::$classes['zipbuddy']->get_comment($file);
// Check for DAT file.
if (pb_backupbuddy::$classes['zipbuddy']->file_exists($file, 'wp-content/uploads/backupbuddy_temp/' . $serial . '/backupbuddy_dat.php') === true) {
// Post 2.0 full backup
$found_dat = true;
$backup_type = 'full';
}
if (pb_backupbuddy::$classes['zipbuddy']->file_exists($file, 'wp-content/uploads/temp_' . $serial . '/backupbuddy_dat.php') === true) {
// Pre 2.0 full backup
$found_dat = true;
$backup_type = 'full';
}
if (pb_backupbuddy::$classes['zipbuddy']->file_exists($file, 'backupbuddy_dat.php') === true) {
// DB backup
$found_dat = true;
$backup_type = 'db';
}
// Check for DB SQL file.
if (pb_backupbuddy::$classes['zipbuddy']->file_exists($file, 'wp-content/uploads/backupbuddy_temp/' . $serial . '/db_1.sql') === true) {
// post 2.0 full backup
$found_sql = true;
$backup_type = 'full';
}
if (pb_backupbuddy::$classes['zipbuddy']->file_exists($file, 'wp-content/uploads/temp_' . $serial . '/db.sql') === true) {
// pre 2.0 full backup
$found_sql = true;
$backup_type = 'full';
}
if (pb_backupbuddy::$classes['zipbuddy']->file_exists($file, 'db_1.sql') === true) {
// db only backup 2.0+
$found_sql = true;
$backup_type = 'db';
}
if (pb_backupbuddy::$classes['zipbuddy']->file_exists($file, 'db.sql') === true) {
// db only backup pre-2.0
$found_sql = true;
$backup_type = 'db';
}
// Check for WordPress config file.
if (pb_backupbuddy::$classes['zipbuddy']->file_exists($file, 'wp-config.php') === true) {
$found_wpc = true;
$backup_type = 'full';
}
if (pb_backupbuddy::$classes['zipbuddy']->file_exists($file, 'wp-content/uploads/backupbuddy_temp/' . $serial . '/wp-config.php') === true) {
$found_wpc = true;
$backup_type = 'full';
}
// Calculate status from results.
$integrity_status = 'pass';
$integrity_description = '';
$status_items = pb_backupbuddy::get_status('zipbuddy_test');
$integrity_zipresult_details = array();
foreach ((array) $status_items as $status_item) {
//.........这里部分代码省略.........