Как создать автоматический бэкап в WordPress с помощью плагинов и кода

Зачем нужен автоматический бэкап сайта на WordPress

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

В этой статье подробно разберем, как настроить автоматическую систему резервного копирования для WordPress с помощью готовых плагинов и кастомных PHP-скриптов. Вы узнаете, как оптимально сохранить данные, куда их отправлять, как настроить расписание и уведомления.

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

UpdraftPlus — мощный и бесплатный вариант

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

Основные возможности:

  • Настройка расписания бэкапов (ежедневно, еженедельно и т.д.)
  • Хранение бэкапов в облаке или локально
  • Восстановление сайта из бэкапа в один клик
  • Исключение определенных папок и файлов

Для установки достаточно перейти в админку WordPress > Плагины > Добавить новый, найти UpdraftPlus, установить и активировать. После этого в разделе Настройки > UpdraftPlus можно настроить расписание и место хранения.

BackWPup — расширенные возможности для опытных пользователей

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

Преимущества:

  • Гибкая настройка расписания и условий создания бэкапов
  • Поддержка нескольких форматов архивов (.zip, .tar.gz)
  • Отправка уведомлений на email
  • Интеграция с WP-CLI для автоматизации с командной строки

Создание собственного автоматического бэкапа через код в WordPress

Если вы хотите полный контроль над процессом бэкапа, можно написать свой PHP-скрипт, который будет создавать архив с файлами и дампом базы данных, а затем запускать его по расписанию с помощью WP-Cron или системного cron.

Основные шаги:

  1. Создать функцию, которая экспортирует базу данных и сохраняет ее в файл
  2. Добавить архивирование нужных папок сайта (wp-content, темы, плагины)
  3. Сохранить архив в указанную папку или отправить на удаленный сервер/почту
  4. Настроить планировщик задач для регулярного запуска

Пример функции для экспорта базы данных в файл SQL

function _2wp_export_database_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 .= "\nDROP TABLE IF EXISTS `$table_name`;\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 is_null($val) ? 'NULL' : "'" . addslashes($val) . "'"; }, $vals);
            $sql_dump .= "INSERT INTO `$table_name` VALUES (" . implode(',', $vals) . ");\n";
        }
    }
    $backup_file = WP_CONTENT_DIR . '/backups/db-backup-' . date('Y-m-d-H-i-s') . '.sql';
    file_put_contents($backup_file, $sql_dump);
    return $backup_file;
}

Этот код создает дамп всей базы данных в папку wp-content/backups с меткой времени.

Архивирование файлов сайта

Для создания архива с файлами можно использовать класс ZipArchive PHP. Ниже пример функции для архивации папки wp-content:

function _2wp_zip_wp_content() {
    $zip = new ZipArchive();
    $backup_dir = WP_CONTENT_DIR . '/backups';
    if (!file_exists($backup_dir)) {
        mkdir($backup_dir, 0755, true);
    }
    $zip_file = $backup_dir . '/files-backup-' . date('Y-m-d-H-i-s') . '.zip';
    if ($zip->open($zip_file, ZipArchive::CREATE) !== TRUE) {
        return false;
    }

    $files = new RecursiveIteratorIterator(new RecursiveDirectoryIterator(WP_CONTENT_DIR));
    foreach ($files as $file) {
        if (!$file->isDir()) {
            $filePath = $file->getRealPath();
            $relativePath = substr($filePath, strlen(WP_CONTENT_DIR) + 1);
            $zip->addFile($filePath, $relativePath);
        }
    }

    $zip->close();
    return $zip_file;
}

Автоматизация запуска бэкапов с помощью WP-Cron

Чтобы запускать бэкап регулярно, подключим собственное событие в WP-Cron. Добавим в файл темы или плагина следующий код:

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

add_action('2wp_daily_backup_event', '2wp_run_daily_backup');

function 2wp_run_daily_backup() {
    $db_backup = _2wp_export_database_backup();
    $files_backup = _2wp_zip_wp_content();

    // Можно реализовать отправку бэкапов на почту или в облако
    // Например, отправка письма с файлами как вложениями
}

Таким образом, сайт будет создавать копии базы и файлов автоматически раз в сутки.

Отправка резервных копий на удаленный сервер или облако

Чтобы не занимать место на сервере и гарантировать сохранность, рекомендуем отправлять бэкапы на сторонние сервисы. Плагины UpdraftPlus и BackWPup имеют встроенные интеграции с Dropbox, Google Drive и Amazon S3.

Для кастомных решений можно настроить отправку по FTP, SFTP или через API облачных хранилищ.

Пример отправки файла на FTP:

function _2wp_send_backup_to_ftp($file_path) {
    $ftp_server = 'ftp.example.com';
    $ftp_user = 'user';
    $ftp_pass = 'pass';
    $conn_id = ftp_connect($ftp_server);
    $login_result = ftp_login($conn_id, $ftp_user, $ftp_pass);

    if (!$conn_id || !$login_result) {
        return false;
    }

    $remote_file = '/backups/' . basename($file_path);
    $upload = ftp_put($conn_id, $remote_file, $file_path, FTP_BINARY);
    ftp_close($conn_id);
    return $upload;
}

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

Храните резервные копии в надежных местах с ограниченным доступом. Не оставляйте бэкапы в корневой директории сайта, чтобы их не могли скачать злоумышленники. Используйте защищенные облачные сервисы и шифрование, если есть возможность.

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

Если вы используете плагин Clearfy Pro, в нем есть функции по оптимизации и безопасности, которые можно сочетать с резервным копированием для комплексной защиты сайта. Подробнее на wpshop.ru.

Как удалить старые ревизии записей в WordPress для оптимизации базы данных
04.01.2026
Автоматическое отключение пингов и пингбэков в WordPress
31.12.2025
Автоматическое удаление спам-комментариев в WordPress
26.01.2026
Как удалить метаданные из изображений в WordPress для ускорения сайта
14.12.2025
Автоматическое создание миниатюр (thumbnail) для картинок в WordPress
01.12.2025