Резервное копирование — одна из важнейших процедур для любого сайта на WordPress. Потеря данных или сбой сервера могут привести к серьезным проблемам, поэтому автоматизация создания резервных копий значительно упрощает поддержку сайта и снижает риски.
Почему стоит автоматизировать резервное копирование WordPress
Ручное создание бэкапов неудобно и требует времени, а забывчивость может привести к потере ценных данных. Автоматизация позволяет настроить регулярное создание копий без вашего участия, с уведомлениями и хранением на удаленных серверах. Это важный шаг к надежному и безопасному сайту.
Кроме того, автоматические бэкапы дают возможность быстро восстановить сайт при любых сбоях, минимизируя время простоя и потери трафика.
Популярные плагины для автоматического резервного копирования WordPress
UpdraftPlus — универсальное решение для автоматизации
UpdraftPlus — один из самых популярных и функциональных плагинов для бэкапов. Он позволяет:
- Автоматически создавать резервные копии базы данных, файлов и настроек.
- Хранить копии в облачных хранилищах (Google Drive, Dropbox, Amazon S3 и др.).
- Настраивать расписание: ежедневное, еженедельное, ежемесячное.
- Восстанавливать сайт из бэкапа в пару кликов.
Для установки достаточно перейти в плагин UpdraftPlus на WPSHOP, скачать и активировать.
BackWPup — гибкий плагин с широкими возможностями
BackWPup позволяет создавать полные и инкрементальные резервные копии, поддерживает различные форматы архивов и отправку бэкапов на FTP, email, облачные хранилища. Удобен для сложных проектов с большим объемом данных.
WP Time Capsule — автоматизация с инкрементальными бэкапами
Этот плагин создает резервные копии только измененных файлов и базы данных, что экономит место и трафик. Поддерживает автоматическое восстановление, интеграцию с популярными облачными сервисами.
Как настроить автоматическое резервное копирование с помощью кода
Плагины — удобный вариант, но иногда нужна кастомизация под конкретные задачи. В WordPress можно использовать планировщик задач WP-Cron для запуска создания резервных копий.
Пример простой функции, которая создает резервную копию базы данных и сохраняет её в папку wp-content/backups:
function wppremium_create_db_backup() {
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 = '';
foreach ( $tables as $table ) {
$create_table = $wpdb->get_row("SHOW CREATE TABLE {$table}", ARRAY_N);
$sql .= "\n\n" . $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 isset($value) ? '"' . esc_sql($value) . '"' : 'NULL';
}, array_values($row) );
$sql .= "INSERT INTO {$table} VALUES(" . implode(",", $values) . ");\n";
}
}
file_put_contents( $filepath, $sql );
}
// Запланировать ежедневное выполнение функции
if ( ! wp_next_scheduled( 'wppremium_daily_db_backup' ) ) {
wp_schedule_event( time(), 'daily', 'wppremium_daily_db_backup' );
}
add_action( 'wppremium_daily_db_backup', 'wppremium_create_db_backup' );Этот код создаст SQL-дамп базы данных раз в сутки и сохранит его в директорию wp-content/backups. Обратите внимание, что здесь не включены файлы сайта — только база данных.
Как добавить резервное копирование файлов сайта
Для резервного копирования файлов можно использовать PHP-архиватор:
function wppremium_backup_files() {
$backup_dir = WP_CONTENT_DIR . '/backups';
if ( ! file_exists( $backup_dir ) ) {
wp_mkdir_p( $backup_dir );
}
$zip_file = $backup_dir . '/files-backup-' . date('Y-m-d-H-i-s') . '.zip';
$zip = new ZipArchive();
if ( $zip->open( $zip_file, ZipArchive::CREATE ) !== TRUE ) {
return;
}
$root_path = ABSPATH;
$files = new RecursiveIteratorIterator(
new RecursiveDirectoryIterator($root_path),
RecursiveIteratorIterator::LEAVES_ONLY
);
foreach ($files as $name => $file) {
if (!$file->isDir()) {
$file_path = $file->getRealPath();
$relative_path = substr($file_path, strlen($root_path));
if (strpos($relative_path, 'wp-content/backups') === false) { // исключаем папку с бэкапами
$zip->addFile($file_path, $relative_path);
}
}
}
$zip->close();
}
// Можно вызвать эту функцию вместе с бэкапом базы или отдельно
add_action('wppremium_daily_db_backup', 'wppremium_backup_files');Хранение и отправка резервных копий на удаленные сервисы
Автоматическое сохранение бэкапов на сервере — хорошо, но лучше хранить копии удаленно на случай проблем с хостингом. Для этого можно использовать облачные сервисы или FTP.
Отправка бэкапов на Google Drive с помощью UpdraftPlus
В плагине UpdraftPlus достаточно настроить Google Drive в настройках и плагин будет автоматически выгружать копии туда. Это самый простой и надежный способ.
Пример загрузки файла на FTP через PHP
function wppremium_upload_backup_to_ftp($file_path) {
$ftp_server = 'ftp.example.com';
$ftp_user = 'username';
$ftp_pass = 'password';
$remote_path = '/backups/' . basename($file_path);
$conn_id = ftp_connect($ftp_server);
if (!$conn_id) return false;
$login_result = ftp_login($conn_id, $ftp_user, $ftp_pass);
if (!$login_result) {
ftp_close($conn_id);
return false;
}
ftp_pasv($conn_id, true);
$upload = ftp_put($conn_id, $remote_path, $file_path, FTP_BINARY);
ftp_close($conn_id);
return $upload;
}Вы можете вызвать эту функцию после создания бэкапа, передав путь к файлу резервной копии, чтобы загрузить её на FTP-сервер.
Рекомендации по частоте и объему резервных копий
Оптимальная частота зависит от частоты обновления сайта и объема данных. Для блогов с несколькими постами в день достаточно ежедневных бэкапов, для интернет-магазинов с большим количеством заказов — лучше делать копии несколько раз в день.
Обязательно контролируйте размер бэкапов и периодически очищайте старые копии, чтобы не переполнить хранилище. Плагины вроде UpdraftPlus и BackWPup имеют встроенные функции удаления старых резервных копий.
Интеграция с плагином Clearfy Pro для оптимизации бэкапов
Если на сайте установлен Clearfy Pro, вы можете отключать ненужные функции во время создания резервных копий, чтобы снизить нагрузку и размер файлов. Например, временно отключать неиспользуемые модули и сторонние скрипты.
Для этого в Clearfy Pro предусмотрены удобные настройки, позволяющие гибко управлять ресурсами сайта в критические моменты, например, во время создания бэкапа.