Резервное копирование сайта — одна из ключевых задач для любого администратора WordPress. На wpdo.ru мы часто сталкиваемся с вопросами о том, как настроить автоматическое создание бэкапов, чтобы в случае проблем быстро восстановить данные. В этой статье рассмотрим проверенные плагины и покажем, как сделать собственное решение для автоматического бэкапа с помощью кода.
Почему автоматические бэкапы важны для WordPress
Сайты на WordPress подвержены разным рискам: сбои хостинга, ошибки обновлений, атаки хакеров, человеческий фактор. Если не иметь актуальную копию сайта, восстановление может занять много времени и привести к потере данных.
Ручное создание резервных копий — не всегда удобно и часто забывается. Поэтому автоматизация этого процесса — обязательный элемент надежной поддержки сайта.
Автоматические бэкапы позволяют настроить регулярное сохранение всех файлов и базы данных, хранить копии в облаке или на удаленном сервере, и быстро восстанавливаться при необходимости.
Обзор популярных плагинов для автоматического бэкапа WordPress
UpdraftPlus — удобный и функциональный
UpdraftPlus — один из самых популярных бесплатных плагинов для резервного копирования. Позволяет создавать бэкапы по расписанию, сохранять копии на Google Drive, Dropbox, Amazon S3 и другие сервисы.
Преимущества:
- Простая настройка расписания
- Выбор, что именно бэкапить: база, файлы, плагины и темы
- Возможность восстановления из админки
Для настройки автоматического бэкапа после установки и активации перейдите в настройки UpdraftPlus, укажите расписание и хранилище. Плагин сам будет создавать копии.
BackWPup — расширенные возможности для хранения
BackWPup позволяет создавать полные бэкапы и отправлять их на разные внешние хранилища, включая FTP, Dropbox, S3, а также отправлять их на email.
Отличается гибкостью настроек и возможностью создавать несколько заданий с разными параметрами.
Для автоматизации создайте задание, укажите компоненты для бэкапа, расписание и место хранения.
WPvivid Backup Plugin — простой и надежный
WPvivid Backup Plugin — современный плагин с поддержкой инкрементальных бэкапов и автоматического удаления старых копий. Есть бесплатная и платная версии.
Поддерживает хранение в облаках, миграцию и клонирование сайтов.
Пример решения с использованием кода: автоматический бэкап базы данных
Если по каким-то причинам вы хотите обойтись без плагинов или дополнить их функционал, можно написать собственный скрипт для создания дампа базы данных и сохранять его, например, в папке wp-content/backups.
Ниже пример функции для wpdo, которая делает экспорт базы данных в SQL-файл и сохраняет его с меткой времени.
function wpdo_create_db_backup() {
global $wpdb;
$backup_dir = WP_CONTENT_DIR . '/backups';
if ( ! file_exists($backup_dir) ) {
wp_mkdir_p($backup_dir);
}
$filename = 'wpdb-backup-' . date('Y-m-d-H-i-s') . '.sql';
$filepath = $backup_dir . '/' . $filename;
$tables = $wpdb->get_results('SHOW TABLES', ARRAY_N);
$sql_dump = '';
foreach ($tables as $table) {
$table_name = $table[0];
$create_table = $wpdb->get_row("SHOW CREATE TABLE {$table_name}", ARRAY_N);
$sql_dump .= "\nDROP TABLE IF EXISTS `{$table_name}`;\n";
$sql_dump .= $create_table[1] . ";\n\n";
$rows = $wpdb->get_results("SELECT * FROM {$table_name}", ARRAY_A);
foreach ($rows as $row) {
$columns = array_map('esc_sql', array_keys($row));
$values = array_map(array($wpdb, 'escape'), array_values($row));
$sql_dump .= "INSERT INTO `{$table_name}` (`" . implode('`,`', $columns) . "`) VALUES ('" . implode("','", $values) . "');\n";
}
$sql_dump .= "\n";
}
file_put_contents($filepath, $sql_dump);
}
// Запуск бэкапа по расписанию через крон
if ( ! wp_next_scheduled('wpdo_daily_db_backup') ) {
wp_schedule_event(time(), 'daily', 'wpdo_daily_db_backup');
}
add_action('wpdo_daily_db_backup', 'wpdo_create_db_backup');Этот код создаст ежедневный бэкап базы данных в папку wp-content/backups. Учтите, что для больших баз данных лучше использовать специализированные решения или делать бэкапы на уровне сервера.
Советы по хранению и безопасности резервных копий WordPress
Храните бэкапы не на том же сервере, где размещен сайт — это рискованно при сбоях и взломах. Используйте облачные хранилища или отдельные серверы.
Регулярно проверяйте работоспособность копий, пробуйте восстановление на тестовом стенде.
Настраивайте автоматическое удаление устаревших копий, чтобы не переполнять дисковое пространство.
Кроме базы данных, важно включать в бэкап файлы темы, плагинов, загрузок — чтобы восстановить сайт полностью.
Заключение по автоматическому созданию бэкапов в WordPress
Автоматизация резервного копирования — обязательный шаг для надежного функционирования сайта на WordPress. Используйте проверенные плагины, такие как UpdraftPlus, BackWPup или WPvivid, чтобы не тратить время на рутину.
Если нужно, дополняйте их кастомными решениями, например, автоматическим экспортом базы данных, как показано в примере wpdo.
Планируйте хранение и безопасность копий, чтобы не потерять доступ к сайту при любых проблемах.