Автоматизация создания резервных копий в WordPress с помощью плагинов и кода

|

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

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

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

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

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

UpdraftPlus — универсальное решение для автоматизации

UpdraftPlus — один из самых популярных и функциональных плагинов для бэкапов. Он позволяет:

Для установки достаточно перейти в плагин UpdraftPlus на WPSHOP, скачать и активировать.

BackWPup — гибкий плагин с широкими возможностями

BackWPup позволяет создавать полные и инкрементальные резервные копии, поддерживает различные форматы архивов и отправку бэкапов на FTP, email, облачные хранилища. Удобен для сложных проектов с большим объемом данных.

WP Time Capsule — автоматизация с инкрементальными бэкапами

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

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

Плагины — удобный вариант, но иногда нужна кастомизация под конкретные задачи. В WordPress можно использовать планировщик задач WP-Cron для запуска создания резервных копий.

Пример простой функции, которая создает резервную копию базы данных и сохраняет её в папку wp-content/backups:

function wppremium_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;

    $tables = $wpdb->get_col('SHOW TABLES');
    $sql = '';

    foreach ( $tables as $table ) {
        $create_table = $wpdb->get_row("SHOW CREATE TABLE {$table}", ARRAY_N);
        $sql .= "\n\n" . $create_table[1] . ";\n\n";

        $rows = $wpdb->get_results("SELECT * FROM {$table}", ARRAY_A);
        foreach ( $rows as $row ) {
            $values = array_map( function($value) use ($wpdb) {
                return isset($value) ? '"' . esc_sql($value) . '"' : 'NULL';
            }, array_values($row) );
            $sql .= "INSERT INTO {$table} VALUES(" . implode(",", $values) . ");\n";
        }
    }

    file_put_contents( $filepath, $sql );
}

// Запланировать ежедневное выполнение функции
if ( ! wp_next_scheduled( 'wppremium_daily_db_backup' ) ) {
    wp_schedule_event( time(), 'daily', 'wppremium_daily_db_backup' );
}
add_action( 'wppremium_daily_db_backup', 'wppremium_create_db_backup' );

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

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

Для резервного копирования файлов можно использовать PHP-архиватор:

function wppremium_backup_files() {
    $backup_dir = WP_CONTENT_DIR . '/backups';
    if ( ! file_exists( $backup_dir ) ) {
        wp_mkdir_p( $backup_dir );
    }
    $zip_file = $backup_dir . '/files-backup-' . date('Y-m-d-H-i-s') . '.zip';

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

    $root_path = ABSPATH;

    $files = new RecursiveIteratorIterator(
        new RecursiveDirectoryIterator($root_path),
        RecursiveIteratorIterator::LEAVES_ONLY
    );

    foreach ($files as $name => $file) {
        if (!$file->isDir()) {
            $file_path = $file->getRealPath();
            $relative_path = substr($file_path, strlen($root_path));
            if (strpos($relative_path, 'wp-content/backups') === false) { // исключаем папку с бэкапами
                $zip->addFile($file_path, $relative_path);
            }
        }
    }

    $zip->close();
}

// Можно вызвать эту функцию вместе с бэкапом базы или отдельно
add_action('wppremium_daily_db_backup', 'wppremium_backup_files');

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

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

Отправка бэкапов на Google Drive с помощью UpdraftPlus

В плагине UpdraftPlus достаточно настроить Google Drive в настройках и плагин будет автоматически выгружать копии туда. Это самый простой и надежный способ.

Пример загрузки файла на FTP через PHP

function wppremium_upload_backup_to_ftp($file_path) {
    $ftp_server = 'ftp.example.com';
    $ftp_user = 'username';
    $ftp_pass = 'password';
    $remote_path = '/backups/' . basename($file_path);

    $conn_id = ftp_connect($ftp_server);
    if (!$conn_id) return false;

    $login_result = ftp_login($conn_id, $ftp_user, $ftp_pass);
    if (!$login_result) {
        ftp_close($conn_id);
        return false;
    }

    ftp_pasv($conn_id, true);
    $upload = ftp_put($conn_id, $remote_path, $file_path, FTP_BINARY);

    ftp_close($conn_id);
    return $upload;
}

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

Рекомендации по частоте и объему резервных копий

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

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

Интеграция с плагином Clearfy Pro для оптимизации бэкапов

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

Для этого в Clearfy Pro предусмотрены удобные настройки, позволяющие гибко управлять ресурсами сайта в критические моменты, например, во время создания бэкапа.

WooCommerce: как программно удалять неактивные корзины и заказы
22.05.2026
WooCommerce: установка ограничений на сроки доставки и способы оплаты для конкретных товаров
03.05.2026
Как удалить скрипт из заголовка WordPress для ускорения сайта
29.12.2025
Как добавить настройки в регистрацию WordPress с подтверждением email
08.02.2026
Как удалить meta tag generator в WordPress: практическое руководство
06.01.2026
×

AI-плагин от WPShop.ru

анализирует конкурентов

пишет статьи

готовит SEO

генерирует изображения

и еще кое-что...
WPGPT
Плагин, который наполняет ваш сайт WordPress
Узнать больше