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

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

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

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

  • Контролировать процесс создания, хранения и удаления резервных копий.
  • Минимизировать нагрузку на сайт, выполняя задачи вне WordPress.
  • Автоматизировать процесс с помощью cron и bash-скриптов.
  • Избавиться от зависимости от сторонних плагинов.

И главное — вы учитесь понимать, как работает WordPress и сервер под капотом.

Как организовать резервное копирование: основные компоненты

Чтобы сделать эффективный бэкап, нужно сохранить две ключевые части:

  1. Файлы сайта: ядро WordPress, темы, плагины, загруженные медиафайлы.
  2. Базу данных: именно там хранятся все записи, страницы, настройки, пользователи и пр.

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

Создаем bash-скрипт для резервного копирования WordPress

Для начала создадим простой bash-скрипт, который будет создавать архивы файлов и дамп базы данных. Предположим, что у вас есть SSH-доступ к серверу и права на выполнение скриптов.

Пример скрипта wp-kit-backup.sh

# Параметры подключения к базе данных
DB_NAME="wp_database"
DB_USER="wp_user"
DB_PASSWORD="secure_password"
DB_HOST="localhost"

# Пути
WP_PATH="/var/www/html/wordpress"
BACKUP_PATH="/var/backups/wp"
DATE=$(date +"%Y-%m-%d_%H-%M-%S")

# Создаем папку для бэкапов, если нет
mkdir -p "$BACKUP_PATH"

# Архивируем файлы сайта
zip -r "$BACKUP_PATH/wp-files-$DATE.zip" "$WP_PATH"

# Создаем дамп базы данных
mysqldump -h "$DB_HOST" -u "$DB_USER" -p"$DB_PASSWORD" "$DB_NAME" > "$BACKUP_PATH/wp-db-$DATE.sql"

# Опционально: удаляем бэкапы старше 30 дней
find "$BACKUP_PATH" -type f -mtime +30 -exec rm {} \;

Этот скрипт создает архив с файлами WordPress и SQL-дамп базы. Также реализована очистка бэкапов старше 30 дней.

Автоматизация запуска через cron

Чтобы бэкапы создавались регулярно, настроим cron-задачу. Откройте crontab для редактирования командой crontab -e и добавьте строку, например, для запуска каждый день в 3 часа ночи:

0 3 * * * /bin/bash /path/to/wp-kit-backup.sh >/dev/null 2>&1

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

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

Хранить бэкапы на том же сервере рискованно. Лучше отправлять их автоматически на удаленный сервер по SSH или в облачное хранилище. Рассмотрим пару вариантов.

Отправка на удаленный сервер через SCP

Добавьте в скрипт команду для копирования на удаленный сервер:

REMOTE_USER="backupuser"
REMOTE_HOST="backup.example.com"
REMOTE_PATH="/backups/wp"

scp "$BACKUP_PATH/wp-files-$DATE.zip" "$REMOTE_USER@$REMOTE_HOST:$REMOTE_PATH/"
scp "$BACKUP_PATH/wp-db-$DATE.sql" "$REMOTE_USER@$REMOTE_HOST:$REMOTE_PATH/"

Для безпарольной авторизации настройте SSH-ключи между серверами.

Загрузка в облако с помощью rclone

Если вы используете Google Drive, Yandex Disk, Amazon S3 или другое облако, настройте rclone и добавьте в скрипт:

rclone copy "$BACKUP_PATH/wp-files-$DATE.zip" remote:wp-backups/
rclone copy "$BACKUP_PATH/wp-db-$DATE.sql" remote:wp-backups/

Как интегрировать резервное копирование с WordPress через WP-Cron

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

Пример функции для резервного копирования базы данных

function wpkit_backup_db() {
    global $wpdb;
    $backup_dir = WP_CONTENT_DIR . '/backups';
    if ( ! file_exists( $backup_dir ) ) {
        mkdir( $backup_dir, 0755, true );
    }
    $filename = $backup_dir . '/db-backup-' . date('Y-m-d-H-i-s') . '.sql';

    $command = sprintf(
        'mysqldump --user=%s --password=%s --host=%s %s > %s',
        DB_USER,
        DB_PASSWORD,
        DB_HOST,
        DB_NAME,
        escapeshellarg( $filename )
    );
    shell_exec( $command );
}

// Хук для запуска по расписанию
add_action('wpkit_scheduled_backup', 'wpkit_backup_db');

// Регистрируем расписание (например, раз в сутки)
function wpkit_add_cron_schedule($schedules) {
    $schedules['daily_backup'] = array(
        'interval' => 86400,
        'display' => 'Ежедневный бэкап'
    );
    return $schedules;
}
add_filter('cron_schedules', 'wpkit_add_cron_schedule');

// Активируем задачу при инициализации
function wpkit_activate_backup_cron() {
    if ( ! wp_next_scheduled( 'wpkit_scheduled_backup' ) ) {
        wp_schedule_event( time(), 'daily_backup', 'wpkit_scheduled_backup' );
    }
}
add_action('wp', 'wpkit_activate_backup_cron');

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

Использование плагина Clearfy Pro для расширенного контроля резервных копий

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

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

Чтобы бэкапы были действительно полезны, следуйте нескольким правилам:

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

Выводы и практические советы

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

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

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

Как удалить неработающие варианты оплаты в WooCommerce
10.05.2026
Не работает корзина WooCommerce после обновления: как быстро исправить
23.06.2026
Автоматическое создание резервных копий WordPress без плагинов
23.03.2026
Как отладить ошибку 503 в WordPress: практическое руководство
21.04.2026
Как автоматически отключать плагины в WordPress при ошибках
06.04.2026