Автоматическое создание резервных копий — важный аспект поддержания безопасности и стабильности любого сайта на WordPress. Многие пользователи сразу обращаются к плагинам, но иногда хочется обойтись без них, чтобы не нагружать систему и иметь полный контроль над процессом. В этой статье разберём детально, как настроить автоматическое резервное копирование WordPress без использования плагинов, используя стандартные инструменты сервера и небольшие скрипты.
Почему лучше делать резервные копии без плагинов
Плагины для резервного копирования удобны, но имеют ряд недостатков:
- Могут замедлять сайт и увеличивать нагрузку на сервер.
- Зависимость от сторонних разработчиков и регулярных обновлений.
- Иногда встроенные функции не позволяют гибко настроить расписание и хранение копий.
Настройка резервного копирования вручную на сервере даёт больше контроля и обычно более надёжна, особенно для опытных разработчиков и системных администраторов.
Основные компоненты резервного копирования WordPress
Для полноценного восстановления сайта нужны две части:
- Файлы сайта — темы, плагины, медиа и сам код WordPress.
- База данных — все записи, настройки, пользователи и содержимое.
Важно, чтобы резервные копии обеих частей создавались регулярно и корректно.
Настройка резервного копирования файлов сайта
Самый простой вариант — создать архив каталога с файлами WordPress. Для этого можно написать bash-скрипт, который будет создавать архив и сохранять его в отдельной папке.
Пример скрипта wplike_backup_files.sh:
#!/bin/bash
# Путь к корню сайта
SITE_PATH="/var/www/html"
# Путь для хранения бэкапов
BACKUP_PATH="/var/backups/wplike"
# Создаём папку, если не существует
mkdir -p "$BACKUP_PATH"
# Имя файла с датой
DATE=$(date +"%Y-%m-%d_%H-%M-%S")
# Создаём архив
archive_name="wp_files_backup_$DATE.tar.gz"
tar -czf "$BACKUP_PATH/$archive_name" -C "$SITE_PATH" .
# Очистка старых архивов (старше 30 дней)
find "$BACKUP_PATH" -type f -name "wp_files_backup_*.tar.gz" -mtime +30 -delete
Этот скрипт архивирует весь сайт в архив с меткой времени и удаляет старые архивы старше 30 дней. Его можно запускать по расписанию с помощью cron.
Настройка резервного копирования базы данных
Для базы данных обычно используется утилита mysqldump. Можно написать отдельный скрипт для экспорта базы в SQL-файл.
Пример скрипта wplike_backup_db.sh:
#!/bin/bash
# Параметры базы данных
DB_NAME="wordpress_db"
DB_USER="wp_user"
DB_PASS="your_password"
DB_HOST="localhost"
# Путь для хранения бэкапов
BACKUP_PATH="/var/backups/wplike"
mkdir -p "$BACKUP_PATH"
# Имя файла с датой
DATE=$(date +"%Y-%m-%d_%H-%M-%S")
# Создаём дамп базы
backup_file="$BACKUP_PATH/wp_db_backup_$DATE.sql.gz"
mysqldump -h "$DB_HOST" -u "$DB_USER" -p"$DB_PASS" "$DB_NAME" | gzip > "$backup_file"
# Очистка старых дампов (старше 30 дней)
find "$BACKUP_PATH" -type f -name "wp_db_backup_*.sql.gz" -mtime +30 -delete
Важно защитить скрипт и файл с паролем, чтобы к ним не было доступа посторонних.
Объединение файлов и базы в одну задачу
Можно создать единый скрипт wplike_backup_all.sh, который вызовет оба скрипта и оформит логи.
#!/bin/bash
# Запуск резервного копирования файлов
/path/to/wplike_backup_files.sh
# Запуск резервного копирования базы данных
/path/to/wplike_backup_db.sh
# Можно добавить уведомления по почте или логирование
Затем настроить cron, например, так, чтобы резервные копии создавались каждый день в 2 часа ночи:
0 2 * * * /bin/bash /path/to/wplike_backup_all.sh >/dev/null 2>&1
Дополнительные советы по безопасности и хранению бэкапов
1. Храните копии вне корня сайта — лучше на отдельном разделе или внешнем сервере.
2. Регулярно тестируйте восстановление — сделайте пробное восстановление на тестовом сервере.
3. Используйте шифрование, если копии хранятся в облаке или на сторонних серверах.
4. Можно настроить автоматическую отправку копий на Google Drive или через SCP, добавив команды в скрипты.
Использование WPShop для упрощения резервного копирования
Если хочется более удобное решение, но без сложных ручных настроек, можно рассмотреть Clearfy Pro — плагин от WPShop с функциями оптимизации и резервного копирования. Он позволяет запускать резервное копирование по расписанию, хранить копии в облаке и делает процесс максимально простым.
Выводы и рекомендации
Автоматическое резервное копирование WordPress без плагинов — это несложно, если есть доступ к серверу и базовые знания bash. Такой метод легче контролировать и он не нагружает сайт. Главное — правильно настроить скрипты, cron и обеспечить безопасное хранение копий. Если хочется более простой и визуальный интерфейс, можно использовать проверенные плагины, например Clearfy Pro.