WP-CLI — это мощный инструмент командной строки для управления сайтами на WordPress. Среди множества функций WP-CLI позволяет быстро и эффективно создавать резервные копии сайта без необходимости заходить в админ-панель. В этой статье мы подробно разберем, как использовать WP-CLI для резервного копирования WordPress, рассмотрим примеры команд, а также предложим скрипты для автоматизации процесса.
Что такое WP-CLI и почему он полезен для резервного копирования WordPress
WP-CLI — это интерфейс командной строки, который позволяет выполнять большинство операций с WordPress через терминал. Это особенно удобно для разработчиков и администраторов, которые хотят автоматизировать задачи или работать с большим количеством сайтов.
Преимущества использования WP-CLI для бэкапов:
- Высокая скорость работы без нагрузки на веб-интерфейс.
- Возможность интеграции в скрипты и cron-задачи.
- Гибкость и контроль над процессом копирования.
Для создания резервной копии с помощью WP-CLI обычно используют команды экспорта базы данных и копирования файлов сайта.
Установка и настройка WP-CLI для работы с WordPress
Перед началом работы убедитесь, что на сервере установлен WP-CLI. Для проверки введите в терминале:
wp --infoЕсли команда не найдена, установите WP-CLI, следуя официальной документации на wp-cli.org.
После установки перейдите в директорию вашего сайта WordPress:
cd /path/to/wordpressУбедитесь, что WP-CLI видит ваш сайт, выполнив команду:
wp core versionЕсли версия WordPress отображается, можно приступать к созданию резервной копии.
Создание резервной копии базы данных через WP-CLI
Для создания резервной копии базы данных используйте команду:
wp db export backup-$(date +%F-%T).sqlЭта команда создаст файл с именем, включающим дату и время, например backup-2024-06-10-15:30:00.sql.
Для удобства можно написать функцию в вашем плагине или теме, например, wpbackup_export_db() для автоматизации:
function wpbackup_export_db() {
$filename = 'backup-' . date('Y-m-d-H-i-s') . '.sql';
exec("wp db export $filename");
return $filename;
}Однако запуск shell-команд из PHP требует корректной настройки прав и безопасности.
Резервное копирование файлов WordPress с помощью WP-CLI
База данных — это только часть сайта. Важно сохранить также файлы: темы, плагины, загрузки и конфигурацию.
WP-CLI напрямую не копирует файлы, но вы можете использовать WP-CLI для получения пути к директории, а затем запустить стандартные команды Linux для архивирования:
wp eval 'echo ABSPATH;' # покажет корневую папку WordPress
# пример команды для создания архива с помощью tar
# замените /path/to/backup на нужный путь
tar -czf /path/to/backup/wp-files-$(date +%F-%T).tar.gz -C /path/to/wordpress .Команда wp eval позволяет выполнить PHP-код и получить путь к сайту, что удобно для скриптов.
Автоматизация через bash-скрипт с использованием WP-CLI
Пример простого скрипта для резервного копирования базы и файлов:
#!/bin/bash
# Переменные
WP_PATH="/var/www/html/wordpress"
BACKUP_PATH="/var/backups/wpbackup"
DATE=$(date +%F-%T)
mkdir -p "$BACKUP_PATH"
# Создаем дамп базы данных
wp --path=$WP_PATH db export "$BACKUP_PATH/db-backup-$DATE.sql"
# Создаем архив файлов
cd $WP_PATH
tar -czf "$BACKUP_PATH/files-backup-$DATE.tar.gz" .
# Уведомление
echo "Резервное копирование завершено: $DATE"Такой скрипт можно добавить в cron для регулярного выполнения.
Дополнительные советы по надежному резервному копированию WordPress с WP-CLI
1. Храните резервные копии вне сервера
Используйте команды для выгрузки копий на удаленные хранилища, например, с помощью rclone или SCP.
2. Используйте инкрементные копии
Для экономии места можно комбинировать WP-CLI с инструментами, поддерживающими инкрементные резервные копии, например rsync с опцией --link-dest.
3. Обеспечьте безопасность копий
Обязательно настройте права доступа к папкам с бэкапами и используйте шифрование, если копии хранятся в облаке.
Пример плагина для резервного копирования с использованием WP-CLI
Ниже простой пример плагина, который создает резервную копию базы данных по команде WP-CLI:
/**
* Plugin Name: WPBackup CLI Export
* Description: Добавляет команду для экспорта базы данных.
* Version: 1.0
* Author: wpbackup.ru
*/
if ( defined('WP_CLI') && WP_CLI ) {
class WPBackup_CLI_Export {
public function export( $args, $assoc_args ) {
$filename = 'backup-' . date('Y-m-d-H-i-s') . '.sql';
WP_CLI::runcommand("db export $filename");
WP_CLI::success("База данных экспортирована в $filename");
}
}
WP_CLI::add_command('wpbackup export-db', 'WPBackup_CLI_Export');
}После установки плагина можно выполнить в терминале:
wp wpbackup export-dbи получить резервную копию базы.
Заключение
Использование WP-CLI для резервного копирования WordPress — это надежный, быстрый и гибкий способ сохранить данные сайта. Такой подход особенно полезен для профессиональных разработчиков и администратора сайтов, позволяя интегрировать бэкапы в автоматические процессы и минимизировать время простоя. Рекомендуем комбинировать WP-CLI с классическими инструментами архивирования и безопасно хранить копии вне сервера.
Для расширения функционала бэкапов можно рассмотреть плагины, такие как Clearfy Pro, которые помогут оптимизировать процессы и повысить безопасность сайта.