Для владельцев сайтов на WordPress регулярное создание резервных копий — обязательная практика. Это помогает быстро восстановить сайт при сбоях, ошибках или атаках. В этой статье рассмотрим, как реализовать автоматическое создание резервных копий с помощью популярных плагинов и собственного кода, чтобы обезопасить ваш проект без лишних усилий.
Почему автоматические резервные копии важны для WordPress
Резервное копирование позволяет сохранить все данные сайта: файлы, базу данных, настройки и контент. При ошибках обновления, взломах или случайном удалении данных можно быстро вернуть сайт к рабочему состоянию. Автоматизация процесса избавляет от необходимости помнить о регулярном ручном сохранении, снижая риски потерь.
Особенно это актуально для проектов с частым добавлением контента и изменением настроек. К тому же, автоматизация резервного копирования позволяет планировать создание копий в удобное время, например, в часы низкой нагрузки.
Лучшие плагины для автоматического резервного копирования в WordPress
Рассмотрим несколько популярных и проверенных решений с автоматическим режимом работы.
UpdraftPlus
Один из самых популярных и функциональных плагинов для резервного копирования. Позволяет создавать копии базы данных и файлов, хранить их на облачных сервисах (Google Drive, Dropbox, OneDrive и др.), а также восстанавливать сайт в один клик.
- Настраиваемый график резервных копий;
- Автоматическое удаление старых копий;
- Поддержка мультисайтов;
- Простой интерфейс и подробные логи.
Для установки и настройки достаточно перейти в раздел Плагины → Добавить новый, найти UpdraftPlus, установить и активировать. В настройках можно выбрать расписание и место хранения.
BackWPup
Ещё один мощный плагин с поддержкой множества форматов резервных копий и возможностью выгрузки на FTP, Dropbox и другие сервисы. Позволяет создавать полные резервные копии, с базой данных и файлами, а также оптимизировать базу данных.
- Гибкое расписание задач через Cron;
- Отправка отчётов на email;
- Возможность выполнять отдельные задачи — например, только резервное копирование базы данных;
- Интеграция с WP-CLI для управления через командную строку.
Для настройки достаточно запустить мастер создания задачи и выбрать нужные параметры. Плагин также позволяет вручную запускать резервное копирование.
WP Time Capsule
Отличается тем, что делает инкрементные резервные копии, то есть сохраняет только изменения с последней копии. Это ускоряет процесс и экономит место на сервере.
- Резервное копирование в реальном времени или по расписанию;
- Восстановление сайта на определённый момент времени;
- Совместимость с облачными хранилищами;
- Поддержка мультисайтов.
Как создать автоматическое резервное копирование с помощью собственного кода
Если хочется обойтись без плагинов, можно реализовать базовый механизм резервного копирования с помощью PHP и WP-Cron. Ниже пример создания резервной копии базы данных и сохранения её в папку /wp-content/backups/.
Создание функции резервного копирования базы данных
function wpquiz_backup_database() {
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_dump = '';
foreach ( $tables as $table ) {
$create_table = $wpdb->get_row("SHOW CREATE TABLE $table", ARRAY_N);
$sql_dump .= $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 is_null($value) ? 'NULL' : $wpdb->_real_escape($value);
}, array_values($row) );
$sql_dump .= "INSERT INTO $table VALUES('" . implode("','", $values) . "');\n";
}
$sql_dump .= "\n";
}
file_put_contents( $filepath, $sql_dump );
}
Регистрация задачи WP-Cron для автоматизации
Теперь подключим функцию к расписанию WordPress, например, раз в сутки.
function wpquiz_schedule_backup() {
if ( ! wp_next_scheduled( 'wpquiz_daily_backup' ) ) {
wp_schedule_event( time(), 'daily', 'wpquiz_daily_backup' );
}
}
add_action( 'wp', 'wpquiz_schedule_backup' );
add_action( 'wpquiz_daily_backup', 'wpquiz_backup_database' );
Этот код добавляем в functions.php вашей темы или в отдельный плагин. Обратите внимание, что данное решение создаёт только резервную копию базы данных, без файлов сайта.
Резервное копирование файлов сайта и базы данных с помощью WP-CLI
Если у вас есть доступ к серверу через SSH, отличный вариант — использовать WP-CLI для создания резервных копий.
Пример команды для экспорта базы данных:
wp db export /path/to/backups/db-backup-$(date +%F-%T).sql
Для резервного копирования файлов можно использовать стандартные команды Linux, например, tar:
tar -czf /path/to/backups/wp-files-backup-$(date +%F-%T).tar.gz /path/to/wordpress/
Можно настроить скрипт и cron на сервере для автоматического запуска этих команд по расписанию.
Советы по хранению и безопасности резервных копий
Важно не только создавать резервные копии, но и правильно их хранить:
- Храните копии вне основного сервера — на облачных хранилищах, удалённых FTP или локальных носителях.
- Шифруйте резервные копии, особенно если в них содержатся чувствительные данные.
- Удаляйте старые копии, чтобы не занимать лишнее место.
- Регулярно проверяйте работоспособность резервных копий, восстанавливая тестовую версию сайта.
Интеграция с плагином Clearfy Pro для оптимизации резервного копирования
Плагин Clearfy Pro помогает оптимизировать работу WordPress, в том числе влияет на производительность во время резервного копирования. Настройка Clearfy позволяет отключать ненужные процессы и уменьшить нагрузку на сайт в момент создания копий.
Используйте совместно Clearfy Pro и UpdraftPlus или BackWPup для максимальной эффективности и безопасности.