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

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

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

В этой статье разберем, как настроить автоматическое резервное копирование сайта на WordPress, рассмотрим популярные плагины и покажем пример собственного решения с использованием PHP и WP-Cron.

Популярные плагины для автоматического бэкапа WordPress

На рынке существует множество плагинов, которые позволяют создавать резервные копии автоматически. Рассмотрим самые востребованные и проверенные решения.

UpdraftPlus — простой и мощный бэкап

UpdraftPlus — один из самых популярных плагинов для резервного копирования с возможностью автоматизации. Он умеет сохранять копии на облачные хранилища: Google Drive, Dropbox, Amazon S3 и другие.

  • Настройка расписания бэкапов для файлов и базы данных отдельно.
  • Простой интерфейс для восстановления сайта в один клик.
  • Поддержка инкрементальных копий (в платной версии).

Чтобы настроить автоматический бэкап, достаточно установить плагин, перейти в настройки UpdraftPlus и в разделе "Настройки" включить расписание для файлов и базы данных, выбрав удобный интервал (например, ежедневно или еженедельно).

BackWPup — расширенные возможности и гибкость

BackWPup позволяет создавать резервные копии и отправлять их не только на облачные сервисы, но и на FTP, по электронной почте или сохранять на сервере.

  • Планировщик заданий с гибкими настройками.
  • Возможность создавать полный бэкап сайта или только базы данных.
  • Поддержка мультисайтов WordPress.

Для автоматизации достаточно настроить задачу с нужным расписанием в разделе "BackWPup > Добавить задание", указать тип резервной копии, места хранения и расписание.

Как сделать собственное автоматическое резервное копирование с помощью WP-Cron

Если вы хотите более тонко контролировать процесс или не хотите использовать плагины, можно создать собственное решение с использованием встроенного планировщика WP-Cron.

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

Создание задачи планировщика для резервного копирования

Сначала регистрируем событие:

function wppuzzle_schedule_backup() {
    if ( ! wp_next_scheduled( 'wppuzzle_do_backup' ) ) {
        wp_schedule_event( time(), 'daily', 'wppuzzle_do_backup' );
    }
}
add_action( 'wp', 'wppuzzle_schedule_backup' );

Здесь мы проверяем, не запланировано ли уже событие wppuzzle_do_backup, и если нет — планируем его на ежедневное выполнение.

Функция создания резервной копии базы данных

Для базы данных можно использовать встроенный класс wpdb и экспортировать таблицы в файл SQL:

function wppuzzle_create_db_backup() {
    global $wpdb;
    $tables = $wpdb->get_results( 'SHOW TABLES', ARRAY_N );
    $sql_dump = '';
    foreach ( $tables as $table ) {
        $table_name = $table[0];
        $create_table = $wpdb->get_row( "SHOW CREATE TABLE $table_name", ARRAY_N );
        $sql_dump .= $create_table[1] . ";\n\n";

        $rows = $wpdb->get_results( "SELECT * FROM $table_name", ARRAY_A );
        foreach ( $rows as $row ) {
            $vals = array_map( array( $wpdb, 'escape' ), array_values( $row ) );
            $vals = array_map( function($val) { return "'" . str_replace("'", "\\'", $val) . "'"; }, $vals );
            $sql_dump .= "INSERT INTO $table_name VALUES(" . implode( ', ', $vals ) . ");\n";
        }
        $sql_dump .= "\n";
    }

    $upload_dir = wp_upload_dir();
    $file = $upload_dir['basedir'] . '/wppuzzle_db_backup_' . date('Y-m-d_H-i-s') . '.sql';
    file_put_contents( $file, $sql_dump );
}

Данная функция создаст SQL-дамп всех таблиц и сохранит его в папку загрузок WordPress.

Создание резервной копии файлов сайта

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

function wppuzzle_create_files_backup() {
    $upload_dir = wp_upload_dir();
    $backup_path = $upload_dir['basedir'] . '/wppuzzle_files_backup_' . date('Y-m-d_H-i-s') . '.zip';

    $zip = new ZipArchive();
    if ( $zip->open( $backup_path, ZipArchive::CREATE ) !== TRUE ) {
        return;
    }

    $rootPath = realpath( ABSPATH . 'wp-content' );
    $files = new RecursiveIteratorIterator(
        new RecursiveDirectoryIterator($rootPath),
        RecursiveIteratorIterator::LEAVES_ONLY
    );

    foreach ($files as $name => $file) {
        if (!$file->isDir()) {
            $filePath = $file->getRealPath();
            $relativePath = substr($filePath, strlen($rootPath) + 1);
            $zip->addFile($filePath, $relativePath);
        }
    }
    $zip->close();
}

Эта функция создаст ZIP-архив с содержимым папки wp-content и сохранит его в директорию загрузок.

Запуск функций при срабатывании задачи

Теперь нужно связать нашу задачу с выполнением функций:

add_action( 'wppuzzle_do_backup', 'wppuzzle_create_db_backup' );
add_action( 'wppuzzle_do_backup', 'wppuzzle_create_files_backup' );

Таким образом, при срабатывании задачи wppuzzle_do_backup будут запускаться обе функции создания резервных копий.

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

Чтобы убедиться, что резервное копирование происходит, можно:

  • Проверить папку загрузок WordPress — там должны появляться файлы с именами wppuzzle_db_backup_ и wppuzzle_files_backup_.
  • Использовать плагин WP Crontrol для просмотра и запуска запланированных событий вручную.
  • Добавить логирование в функции бэкапа, чтобы фиксировать успешные запуски с датой и временем.

Дополнительные советы по резервному копированию WordPress

Помимо создания резервных копий, важно продумать следующие моменты:

  • Хранение копий в надежном месте. Не оставляйте бэкапы только на сервере сайта — лучше выгружать их на удаленный сервер или облако.
  • Периодичность создания копий. Чем чаще обновляется сайт, тем чаще нужно делать бэкапы.
  • Тестирование восстановления. Регулярно проверяйте, можно ли восстановить сайт из резервной копии, чтобы избежать неприятных сюрпризов.

Если вы используете собственное решение, подумайте о расширении функционала: отправка копий на email, интеграция с облачными хранилищами, очистка старых бэкапов.

Заключение

Автоматическое резервное копирование — обязательный элемент надежного управления сайтом на WordPress. Вы можете выбрать готовый плагин или создать собственное решение, которое будет работать именно так, как вам нужно. Главное — не забывать про регулярные бэкапы и хранить их в безопасном месте.

Как использовать Advanced Custom Fields для создания комплексных форм в WordPress
17.01.2026
Как создать обновляемое изображение в WordPress
03.12.2025
Как удалить или заблокировать удалённый пользователь в WordPress с помощью кода
30.12.2025
Как использовать REST API для создания собственных эндпоинтов в WordPress
11.01.2026
Как создать автоматическую резервную копию WordPress
19.11.2025