Резервное копирование — одна из важнейших задач для любого сайта на WordPress. Если вы не хотите потерять данные из-за сбоев, взломов или ошибок, нужно настроить автоматическое создание резервных копий. В этой статье подробно разберём, как реализовать автоматическое резервное копирование с помощью плагинов и собственного кода, рассмотрим примеры, а также лучшие практики.
Зачем нужна автоматизация резервных копий WordPress
Ручное создание резервных копий — процесс трудоёмкий и зачастую забываемый. Автоматизация позволяет:
- Регулярно сохранять данные без участия пользователя;
- Обеспечить безопасность данных даже при форс-мажоре;
- Экономить время на восстановление сайта;
- Быстро откатиться к рабочей версии при ошибках обновлений или взломах.
Идеальная схема — настроить создание резервных копий ежедневно или еженедельно, а также хранить их на удалённом сервере или в облаке.
Выбор плагина для автоматического резервного копирования WordPress
На рынке много вариантов, но рассмотрим самые практичные и популярные:
UpdraftPlus — универсальный и функциональный плагин
UpdraftPlus позволяет создавать резервные копии базы данных и файлов, поддерживает отправку копий на Dropbox, Google Drive, Amazon S3 и другие сервисы. Автоматизацию можно настроить в пару кликов.
Пример установки и настройки:
- Установите и активируйте плагин через админку WordPress.
- Перейдите в Настройки > UpdraftPlus Backups.
- Выберите расписание резервного копирования файлов и базы данных (например, ежедневно).
- Подключите удалённое хранилище, например Google Drive.
- Сохраните настройки и сделайте первую резервную копию вручную для проверки.
WPvivid Backup — альтернатива с удобным интерфейсом
WPvivid Backup также умеет создавать полные и инкрементные копии, поддерживает автоматизацию и отправку на облако. Плагин популярен за счёт простоты и стабильности.
Как настроить автоматическое резервное копирование без плагинов с помощью WP-Cron
Иногда хочется полностью контролировать процесс резервного копирования, не используя сторонние плагины. Для этого можно написать собственный код с использованием WP-Cron и PHP.
Основная идея — создать функцию, которая архивирует базу данных и файлы сайта, сохраняет архив в папку на сервере или загружает на удалённый сервер, и запланировать её запуск по расписанию.
Пример функции для создания резервной копии базы данных
function wpbit_backup_database() {
global $wpdb;
$tables = $wpdb->get_results('SHOW TABLES', ARRAY_N);
$sql = '';
foreach ($tables as $table) {
$table_name = $table[0];
$create_table = $wpdb->get_row("SHOW CREATE TABLE $table_name", ARRAY_N);
$sql .= "DROP TABLE IF EXISTS $table_name;\n";
$sql .= $create_table[1] . ";\n\n";
$rows = $wpdb->get_results("SELECT * FROM $table_name", ARRAY_A);
foreach ($rows as $row) {
$vals = array_map('esc_sql', array_values($row));
$vals = array_map(function($v) { return "'" . addslashes($v) . "'"; }, $vals);
$sql .= "INSERT INTO $table_name VALUES(" . implode(",", $vals) . ");\n";
}
$sql .= "\n";
}
$backup_dir = WP_CONTENT_DIR . '/backups';
if (!file_exists($backup_dir)) {
mkdir($backup_dir, 0755, true);
}
$filename = $backup_dir . "/db_backup_" . date('Ymd_His') . ".sql";
file_put_contents($filename, $sql);
}Этот код выгружает все таблицы базы в SQL файл. Его можно дополнить архивированием файлов сайта.
Запуск функции по расписанию через WP-Cron
function wpbit_schedule_backup() {
if (!wp_next_scheduled('wpbit_daily_backup_event')) {
wp_schedule_event(time(), 'daily', 'wpbit_daily_backup_event');
}
}
add_action('wp', 'wpbit_schedule_backup');
add_action('wpbit_daily_backup_event', 'wpbit_backup_database');Этот код запускает резервное копирование базы данных ежедневно.
Как дополнительно защитить и хранить резервные копии
Храните копии не только на сервере сайта — если сайт упадёт, можно потерять все файлы. Хороший вариант — загрузка резервных копий на удалённое хранилище, например через FTP, SFTP, или в облако (Amazon S3, Google Drive и др.).
Если используете собственный скрипт, можно настроить отправку ZIP-архива по FTP:
function wpbit_upload_backup_ftp($file) {
$ftp_server = 'ftp.example.com';
$ftp_user = 'user';
$ftp_pass = 'password';
$conn_id = ftp_connect($ftp_server);
$login = ftp_login($conn_id, $ftp_user, $ftp_pass);
if ($conn_id && $login) {
ftp_put($conn_id, '/backups/' . basename($file), $file, FTP_BINARY);
ftp_close($conn_id);
}
}Вызывайте эту функцию после создания резервной копии.
Обзор плагина Clearfy Pro для оптимизации резервного копирования
Если вы используете Clearfy Pro, обратите внимание, что в нём есть функции для оптимизации производительности и безопасности, которые косвенно влияют на резервное копирование. Например, отключение ненужных функций снижает нагрузку и снижает риск повреждения данных. Подробнее о Clearfy Pro и других продуктах можно почитать на wpshop.ru.
Резюме: практические рекомендации по автоматическому резервному копированию
- Используйте проверенные плагины, например UpdraftPlus или WPvivid Backup, для быстрой настройки и удобства.
- Если хотите полный контроль, напишите собственный скрипт с WP-Cron и PHP, как показано в примерах.
- Храните копии на удалённых хранилищах, чтобы избежать потерь при сбоях сервера.
- Регулярно проверяйте целостность резервных копий и тестируйте восстановление.
- Используйте возможности оптимизации, например из Clearfy Pro, чтобы снизить вероятность ошибок и ускорить работу сайта.
Автоматизация резервного копирования — это не сложно, но требует внимания к деталям и тестированию. Следуйте рекомендациям из статьи, и ваши данные будут в безопасности без лишних хлопот.