Как создать автоматические резервные копии WordPress без плагинов

Резервное копирование сайта — одна из важнейших задач для любого владельца WordPress-проекта. Большинство пользователей устанавливают плагины для бэкапов, но это не всегда оптимальный вариант — плагины могут нагружать сайт, конфликтовать с другими расширениями или требовать дополнительных настроек. В этой статье разберём, как создать автоматические резервные копии WordPress без плагинов с помощью простых скриптов и стандартных средств хостинга.

Почему важно делать резервные копии WordPress

Резервные копии помогают быстро восстановить сайт после ошибок, взломов, сбоев сервера или человеческих ошибок. Даже если у вас надёжный хостинг, никогда нельзя быть полностью застрахованным от потери данных. Автоматизация процесса резервного копирования значительно снижает риски и экономит время.

Основные объекты для копирования в WordPress — это база данных и файлы сайта (темы, плагины, загрузки и системные файлы).

Создание резервной копии базы данных WordPress с помощью PHP и WP-CLI

Самый простой способ сделать дамп базы данных — использовать WP-CLI, если у вас есть к нему доступ на сервере. Команда:

wp db export /путь/к/папке/backup-$(date +%F).sql

создаст дамп базы в указанной папке с датой в имени файла.

Если WP-CLI нет, можно сделать экспорт базы через PHP-скрипт, который запускается по cron. Пример такого скрипта:

<?php
// wphost_backup_db.php

// Настройки подключения к базе
$host = 'localhost';
$user = 'wp_user';
$password = 'wp_password';
$dbname = 'wp_database';

// Имя файла резервной копии с датой
$backupFile = __DIR__ . '/backup/db_backup_' . date('Y-m-d_H-i-s') . '.sql';

// Создаем папку, если нет
if (!is_dir(__DIR__ . '/backup')) {
    mkdir(__DIR__ . '/backup', 0755, true);
}

// Команда для экспорта базы
$command = "mysqldump --host=$host --user=$user --password=$password $dbname > $backupFile";

exec($command, $output, $return_var);

if ($return_var === 0) {
    echo "Резервная копия базы создана: $backupFile";
} else {
    echo "Ошибка при создании бэкапа базы";
}
?>

Данный скрипт нужно запускать регулярно через планировщик задач cron, например, раз в сутки или неделю.

Резервное копирование файлов WordPress с помощью rsync и tar

Для копирования файлов сайта удобнее использовать инструменты командной строки — rsync или tar. Вот пример команды tar для архивации файлов сайта:

tar -czf /путь/к/backup/wp_files_$(date +%F).tar.gz /путь/к/вашему/wordpress

Эту команду тоже можно запускать по расписанию через cron.

Если у вас есть SSH-доступ к серверу, rsync позволит делать инкрементные копии, экономя место и время:

rsync -av --delete /путь/к/wordpress/ /путь/к/backup/wordpress_backup_$(date +%F)/

Как настроить cron для автоматического запуска скриптов резервного копирования

Чтобы автоматизировать процесс, нужно добавить задания в cron. Для редактирования cron используйте команду:

crontab -e

Пример строки для ежедневного запуска в 3 часа ночи PHP-скрипта резервного копирования базы:

0 3 * * * /usr/bin/php /путь/к/wphost_backup_db.php >/dev/null 2>&1

Аналогично можно добавить команду для архивации файлов. Важно, чтобы у пользователя, под которым запускается cron, были права на выполнение скриптов и доступ к нужным каталогам.

Пример объединённого скрипта резервного копирования базы и файлов

Ниже пример простого PHP-скрипта, который создаёт резервные копии базы и файлов, помещая их в папку backup:

<?php
// wphost_backup_all.php

$backupDir = __DIR__ . '/backup';
if (!is_dir($backupDir)) {
    mkdir($backupDir, 0755, true);
}

// Параметры базы данных
$host = 'localhost';
$user = 'wp_user';
$password = 'wp_password';
$dbname = 'wp_database';

// Создаем дамп базы
$dbBackupFile = $backupDir . '/db_backup_' . date('Y-m-d_H-i-s') . '.sql';
$dumpCommand = "mysqldump --host=$host --user=$user --password=$password $dbname > $dbBackupFile";
exec($dumpCommand, $output, $returnVar);

if ($returnVar !== 0) {
    echo "Ошибка при создании резервной копии базы\n";
    exit(1);
}

// Архивируем файлы WordPress
$wpPath = '/путь/к/wordpress';
$filesBackupFile = $backupDir . '/wp_files_' . date('Y-m-d_H-i-s') . '.tar.gz';
$tarCommand = "tar -czf $filesBackupFile -C $wpPath .";
exec($tarCommand, $output, $returnVar);

if ($returnVar !== 0) {
    echo "Ошибка при создании архива файлов\n";
    exit(1);
}

echo "Резервные копии успешно созданы: \n$dbBackupFile\n$filesBackupFile";
?>

Дополнительные рекомендации по безопасности и хранению бэкапов

Храните резервные копии не на том же сервере, где размещён сайт, чтобы избежать потери данных при сбоях хостинга. Можно настроить автоматическую отправку бэкапов на удалённый сервер по FTP/SFTP или в облачное хранилище (например, AWS S3, Google Drive). Для этого подходят отдельные скрипты или утилиты, например, rclone.

Периодически проверяйте целостность и возможность восстановления из резервных копий.

Для удобства и расширенных функций вы можете рассмотреть плагины, такие как Clearfy Pro, которые оптимизируют управление сайтом и помогают с резервным копированием.

Итоги и практические советы

  • Используйте WP-CLI или mysqldump для создания дампа базы данных.
  • Архивируйте файлы WordPress с помощью tar или rsync.
  • Автоматизируйте запуск скриптов через cron для регулярного бэкапа.
  • Храните копии на удалённых серверах или в облаке для безопасности.
  • Проверяйте резервные копии и тестируйте восстановление.

Создание автоматических резервных копий WordPress без плагинов — это реальная и эффективная задача, которую можно решить с помощью базовых инструментов сервера. Такой подход позволит вам не зависеть от сторонних расширений и обеспечить надёжную защиту вашего сайта.

Как избежать проблем с неработающими email-уведомлениями WooCommerce
08.05.2026
Как решить проблему неработающих email-уведомлений WooCommerce
09.06.2026
Как отключить индексацию отдельных страниц WordPress для поисковых систем
28.03.2026
Как создать автоматические резервные копии WordPress без плагинов
02.02.2026
Как сделать отзывы с фотографиями в WordPress
11.04.2026