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

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

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

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

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

Без автоматических резервных копий восстановление сайта может стать долгим и дорогостоящим.

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

UpdraftPlus — надежный и функциональный

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

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

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

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

BackWPup — комплексное решение для резервного копирования

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

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

Создание автоматических резервных копий без плагинов: пример кода

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

function wppartner_create_backup() {
    global $wpdb;
    $upload_dir = wp_upload_dir();
    $backup_dir = WP_CONTENT_DIR . '/backups';

    if ( ! file_exists( $backup_dir ) ) {
        mkdir( $backup_dir, 0755, true );
    }

    // Создаем дамп базы данных
    $db_file = $backup_dir . '/db-backup-' . date('Y-m-d-H-i-s') . '.sql';
    $command = 'mysqldump --user=' . DB_USER . ' --password=' . DB_PASSWORD . ' --host=' . DB_HOST . ' ' . DB_NAME . ' > ' . $db_file;
    exec( $command );

    // Архивируем папку uploads
    $zip_file = $backup_dir . '/uploads-backup-' . date('Y-m-d-H-i-s') . '.zip';
    $zip = new ZipArchive();
    if ( $zip->open( $zip_file, ZipArchive::CREATE ) === TRUE ) {
        $files = new RecursiveIteratorIterator(
            new RecursiveDirectoryIterator( $upload_dir['basedir'] ),
            RecursiveIteratorIterator::LEAVES_ONLY
        );

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

// Регистрируем событие в WP-Cron
if ( ! wp_next_scheduled( 'wppartner_daily_backup' ) ) {
    wp_schedule_event( time(), 'daily', 'wppartner_daily_backup' );
}

add_action( 'wppartner_daily_backup', 'wppartner_create_backup' );

Этот код создаст ежедневный бэкап базы данных и папки с медиафайлами. Обратите внимание, что для работы mysqldump должен быть доступен на сервере, а PHP иметь права на запись в папку wp-content/backups.

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

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

Удаление старых бэкапов с помощью WP-Cron

Добавим функцию, которая будет удалять файлы старше 7 дней из папки с бэкапами:

function wppartner_cleanup_backups() {
    $backup_dir = WP_CONTENT_DIR . '/backups';
    $files = glob( $backup_dir . '/*' );
    $now = time();

    foreach ( $files as $file ) {
        if ( is_file( $file ) && $now - filemtime( $file ) > 7 * 86400 ) {
            unlink( $file );
        }
    }
}

// Запускаем очистку раз в неделю
if ( ! wp_next_scheduled( 'wppartner_weekly_cleanup' ) ) {
    wp_schedule_event( time(), 'weekly', 'wppartner_weekly_cleanup' );
}

add_action( 'wppartner_weekly_cleanup', 'wppartner_cleanup_backups' );

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

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

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

  • Храните копии вне публичного веб-каталога или в защищенных облаках.
  • Используйте шифрование архивов и базы данных.
  • Ограничьте доступ к папке с бэкапами через .htaccess или аналогичные механизмы.

Для шифрования можно применять сторонние инструменты или расширять функции PHP для создания зашифрованных архивов.

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

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

  • Плагины с готовыми интерфейсами и облачной интеграцией (например, UpdraftPlus, BackWPup).
  • Кастомные решения с использованием WP-Cron и PHP-кода для гибкой настройки.

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

Вам также может быть интересно:

Создание комплексного фильтра постов WordPress с помощью мета-запросов
09.02.2026
Автоматизация публикации в WordPress с помощью WPRemark: практическое руководство
05.01.2026
Установка и настройка WP GPT для автоматизации контента в WordPress
01.03.2026
Как создать и использовать собственные таксономии в WordPress: подробное руководство
05.02.2026
Как удалить или заблокировать плагин в WordPress: практическое руководство
02.12.2025
×
C Днём программиста!
-20%

Ваша скидка
на премиум-темы и
плагины WordPress

Купить со скидкой сейчас ⋙