Регулярное создание резервных копий сайта на WordPress — залог безопасности и быстрого восстановления после сбоев или взломов. В этой статье разберём, как организовать автоматическое создание бэкапов на WordPress, используя минимальное количество плагинов и собственные функции с учётом лучших практик.
Почему важна автоматизация резервного копирования WordPress
Ручное создание резервных копий занимает время и легко забывается, что чревато потерей данных. Автоматизация позволяет:
- Регулярно сохранять актуальную копию базы данных и файлов сайта.
- Минимизировать риски потери данных при обновлениях, ошибках или атаках.
- Экономить время на восстановление и поддержку сайта.
При этом важно, чтобы процесс был гибким, надежным и с возможностью настройки частоты, хранения и уведомлений.
Выбор инструмента для автоматизации бэкапов
Среди популярных решений есть как универсальные плагины, так и кастомные скрипты. Рассмотрим оба подхода.
Плагины для автоматического резервного копирования
Популярные плагины с хорошими отзывами и функционалом, которые подойдут для автоматизации:
- UpdraftPlus — позволяет настроить автоматические бэкапы базы данных и файлов, хранить копии в облаках (Google Drive, Dropbox и др.).
- BackWPup — гибкий плагин с возможностью планирования задач и отправки копий на FTP, Dropbox, Amazon S3.
- WP Time Capsule — делает инкрементальные бэкапы, экономит место и быстро восстанавливает сайт.
Для примера рассмотрим настройку UpdraftPlus с учётом автоматизации и уведомлений.
Пример настройки UpdraftPlus с автоматическими бэкапами
1. Установите и активируйте плагин UpdraftPlus.
2. Перейдите в настройки плагина и выберите расписание для базы данных и файлов (например, ежедневно для базы и раз в неделю для файлов).
3. Настройте удалённое хранилище (Google Drive, Dropbox) для сохранения копий автоматически.
4. Включите уведомления на email, чтобы получать отчёты о состоянии бэкапов.
Создание кастомного решения для автоматического бэкапа
Если нужна тонкая настройка или минимализм, можно создать собственный скрипт на PHP и запустить его по расписанию через WP-Cron или системный cron.
Ниже пример функции wpmax_create_backup(), которая экспортирует базу данных и сохраняет её в папку wp-content/backups с датой в имени файла.
function wpmax_create_backup() {
global $wpdb;
$backup_dir = WP_CONTENT_DIR . '/backups';
if ( !file_exists($backup_dir) ) {
wp_mkdir_p($backup_dir);
}
$backup_file = $backup_dir . '/db-backup-' . date('Y-m-d-H-i-s') . '.sql';
$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 .= "DROP TABLE IF EXISTS `$table_name`;
" . $create_table[1] . ";
";
$rows = $wpdb->get_results("SELECT * FROM $table_name", ARRAY_A);
foreach ($rows as $row) {
$vals = array_map(function($v) use ($wpdb) {
return isset($v) ? "'" . esc_sql($v) . "'" : "NULL";
}, array_values($row));
$sql_dump .= "INSERT INTO `$table_name` VALUES (" . implode(",", $vals) . ");
";
}
}
file_put_contents($backup_file, $sql_dump);
return $backup_file;
}Эту функцию можно запускать по расписанию через WP-Cron:
function wpmax_schedule_backup() {
if ( ! wp_next_scheduled( 'wpmax_daily_backup_event' ) ) {
wp_schedule_event( time(), 'daily', 'wpmax_daily_backup_event' );
}
}
add_action( 'wp', 'wpmax_schedule_backup' );
add_action( 'wpmax_daily_backup_event', 'wpmax_create_backup' );Таким образом, бэкап будет создаваться автоматически каждый день в директорию wp-content/backups. Для удобства можно добавить уведомления на email после успешного создания копии.
Рекомендации по организации хранения и безопасности бэкапов
Важно не только регулярно создавать копии, но и правильно их хранить:
- Храните копии вне корневой директории сайта, чтобы защитить от взлома.
- Используйте облачные хранилища или отдельные серверы для долговременного хранения.
- Ограничьте доступ к папке с бэкапами через .htaccess или другими методами.
- Периодически проверяйте целостность и возможность восстановления из резервных копий.
Для плагина UpdraftPlus всё это реализовано из коробки, для кастомных решений — потребуется дополнительная настройка.
Дополнительные плагины для расширения функционала резервного копирования
Если хотите интегрировать автоматические резервные копии с другими рабочими процессами, обратите внимание на:
- Clearfy Pro — помогает оптимизировать работу сайта и управлять безопасностью, включая автоматизацию задач.
- WPRemark — система отзывов и комментариев с возможностью интеграции уведомлений, что полезно для контроля состояния сайта.
Эти инструменты дополнят ваш процесс автоматизации и помогут сделать работу с WordPress более эффективной.