Как создать автоматическое резервное копирование WordPress

Резервное копирование — это одна из важнейших задач для любого сайта на WordPress. Потеря данных из-за ошибок, взломов или сбоев может привести к серьезным последствиям. В этой статье мы разберём, как создать автоматическое резервное копирование WordPress, используя проверенные плагины, а также рассмотрим пример простой кастомной функции для автоматизации процесса.

Почему важно иметь автоматическое резервное копирование WordPress

Ручное создание резервных копий — процесс, который легко забыть. Автоматизация помогает:

  • Обеспечить регулярное сохранение актуальных данных сайта;
  • Минимизировать риск потери информации;
  • Экономить время на восстановление сайта после сбоев;
  • Упростить миграцию и обновления.

Без регулярных бэкапов даже небольшая ошибка или взлом могут привести к длительному простою сайта и финансовым потерям.

Лучшие плагины для автоматического резервного копирования WordPress

Рассмотрим три популярных и надёжных плагина для автоматизации бэкапов:

1. UpdraftPlus

UpdraftPlus — один из самых популярных плагинов для резервного копирования и восстановления. Он позволяет настроить расписание, хранить бэкапы на удалённых серверах (Google Drive, Dropbox, Amazon S3 и др.) и легко восстанавливать сайт.

  • Настраиваем периодичность резервного копирования — от нескольких раз в день до еженедельно;
  • Выбираем, что копировать — база данных, файлы или всё вместе;
  • Интеграция с облачными хранилищами;
  • Простой интерфейс и удобное восстановление.

2. BackWPup

BackWPup отлично подходит для комплексного бэкапа с возможностью хранения архивов на FTP, Dropbox, S3, Microsoft Azure и других сервисах.

  • Поддержка шифрования архивов;
  • Планировщик заданий для автоматического запуска;
  • Логирование процесса бэкапа;
  • Возможность тестового восстановления.

3. WPvivid Backup Plugin

WPvivid предлагает простой и мощный функционал, включая автоматическое копирование, миграцию и клонирование сайтов.

  • Автоматическая отправка файлов на выбранное облако;
  • Интеграция с Google Drive, OneDrive, Dropbox;
  • Интуитивно понятный интерфейс;
  • Настройка исключений для ненужных файлов.

Настройка автоматического резервного копирования с помощью UpdraftPlus

Для примера рассмотрим настройку плагина UpdraftPlus:

  1. Установите и активируйте плагин через админ-панель WordPress.
  2. Перейдите в раздел Настройки > UpdraftPlus Резервные копии.
  3. Во вкладке Настройки выберите расписание для базы данных и файлов (например, ежедневно или ежечасно).
  4. Выберите удалённое хранилище (Google Drive, Dropbox и т. д.).
  5. Пройдите процесс авторизации для подключения облака.
  6. Сохраните настройки и нажмите кнопку Создать резервную копию для теста.

После этого плагин будет автоматически делать резервные копии согласно расписанию и сохранять их в выбранном месте.

Создание кастомной функции для автоматического резервного копирования базы данных WordPress

Если вы хотите добавить автоматическое резервное копирование с помощью собственного скрипта, можно использовать следующий пример. Он будет создавать дамп базы данных и сохранять его в папку wp-content/backups с именем, содержащим дату.

function wpnews_create_db_backup() {
    global $wpdb;
    $backup_dir = WP_CONTENT_DIR . '/backups';
    if ( ! file_exists( $backup_dir ) ) {
        wp_mkdir_p( $backup_dir );
    }
    $filename = 'db-backup-' . date('Y-m-d-H-i-s') . '.sql';
    $filepath = $backup_dir . '/' . $filename;

    $command = 'mysqldump --user=' . DB_USER . ' --password=' . DB_PASSWORD . ' --host=' . DB_HOST . ' ' . DB_NAME . ' > ' . escapeshellarg( $filepath );
    exec( $command, $output, $return_var );

    if ( $return_var === 0 ) {
        error_log('wpnews: Резервная копия базы данных создана: ' . $filename);
    } else {
        error_log('wpnews: Ошибка при создании резервной копии базы данных');
    }
}

add_action('wp_scheduled_backup_hook', 'wpnews_create_db_backup');

if ( ! wp_next_scheduled( 'wp_scheduled_backup_hook' ) ) {
    wp_schedule_event( time(), 'daily', 'wp_scheduled_backup_hook' );
}

Этот код создаёт планировщик, который раз в сутки запускает функцию wpnews_create_db_backup. Функция использует системную команду mysqldump для создания дампа базы данных. Чтобы этот код работал, сервер должен поддерживать вызов exec и иметь доступ к утилите mysqldump.

Обратите внимание, что хранение пароля базы данных в команде — не самый безопасный способ, поэтому для продакшена лучше использовать более защищённые методы или плагины.

Как автоматизировать резервное копирование файлов WordPress через PHP

Резервное копирование файлов сайта — не менее важная задача. Для этого можно добавить функцию, которая создаёт архив с необходимыми папками, например wp-content/uploads.

function wpnews_backup_uploads_folder() {
    $uploads_dir = wp_get_upload_dir()['basedir'];
    $backup_dir = WP_CONTENT_DIR . '/backups';
    if ( ! file_exists( $backup_dir ) ) {
        wp_mkdir_p( $backup_dir );
    }
    $zipname = $backup_dir . '/uploads-backup-' . date('Y-m-d-H-i-s') . '.zip';

    $zip = new ZipArchive();
    if ( $zip->open( $zipname, ZipArchive::CREATE ) === TRUE ) {
        $files = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($uploads_dir), RecursiveIteratorIterator::LEAVES_ONLY);
        foreach ($files as $name => $file) {
            if (!$file->isDir()) {
                $filePath = $file->getRealPath();
                $relativePath = substr($filePath, strlen($uploads_dir) + 1);
                $zip->addFile($filePath, $relativePath);
            }
        }
        $zip->close();
        error_log('wpnews: Резервная копия uploads создана: ' . $zipname);
    } else {
        error_log('wpnews: Не удалось создать архив uploads');
    }
}

add_action('wp_scheduled_backup_files', 'wpnews_backup_uploads_folder');

if ( ! wp_next_scheduled( 'wp_scheduled_backup_files' ) ) {
    wp_schedule_event( time(), 'daily', 'wp_scheduled_backup_files' );
}

Эта функция создаёт ZIP-архив папки uploads и сохраняет его в папке backups. Аналогично можно расширить архивирование на другие важные директории.

Рекомендации по хранению и безопасности бэкапов

При организации резервного копирования важно учитывать:

  • Храните бэкапы вне корневой папки сайта, чтобы они не были доступны по прямой ссылке;
  • Используйте облачные хранилища или внешние серверы для копий;
  • Ограничьте доступ к папкам с бэкапами через .htaccess или другими методами;
  • Регулярно проверяйте целостность и возможность восстановления из бэкапов;
  • Удаляйте устаревшие копии, чтобы не занимать лишнее место.

Заключение

Автоматическое резервное копирование — неотъемлемая часть поддержки сайта на WordPress. Использование готовых плагинов, таких как UpdraftPlus, BackWPup или WPvivid, позволяет быстро и просто настроить надёжные бэкапы. Для опытных разработчиков полезно создавать кастомные функции, которые можно интегрировать с планировщиком WordPress и адаптировать под свои задачи.

Настройка и тестирование резервных копий — залог спокойствия и безопасности вашего сайта на wpnews.ru.

Как создать собственный виджет WordPress: подробное руководство с примерами кода
25.11.2025
Как создать автоматическое резервное копирование WordPress с помощью плагинов и кода
02.12.2025
Как создать подробный лог для отладки в WordPress
21.11.2025
Как создать свой шорткод в WordPress: практическое руководство
03.11.2025
Как использовать Hooks в WordPress для расширения функциональности
12.11.2025