wpbackup.ru wordpress WPBackup.ru

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

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

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

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

Удалённые копии хранятся на внешних сервисах — облачных хранилищах, FTP, SFTP, NAS или даже на других серверах. Они обеспечивают дополнительный уровень безопасности, но восстановление из них может занимать больше времени из-за сетевых задержек.

Оптимальная стратегия — использовать и те, и другие решения вместе, чтобы обеспечить баланс между скоростью восстановления и надёжностью хранения.

Выбор плагинов для организации локальных и удалённых резервных копий WordPress

Для реализации этой стратегии можно использовать проверенные плагины, которые поддерживают гибкие настройки хранения и автоматизацию бэкапов:

  • UpdraftPlus — один из самых популярных плагинов, поддерживает резервное копирование на локальный сервер и множество удалённых хранилищ: Google Drive, Amazon S3, FTP, Dropbox и другие.
  • BackWPup — бесплатный и мощный инструмент с возможностью выгрузки копий на FTP, Dropbox, S3 и другие сервисы.
  • WPVivid Backup — поддерживает как локальное, так и удалённое хранение, имеет удобный интерфейс и планировщик заданий.

Для примера рассмотрим настройку UpdraftPlus с локальным и удалённым копированием.

Настройка плагина UpdraftPlus для локальных и удалённых копий

После установки и активации плагина перейдите в Настройки > UpdraftPlus Backup. В разделе "Настройки" выберите локальное хранение (обычно по умолчанию) и добавьте удалённое хранилище, например, Google Drive.

Для подключения Google Drive нужно авторизоваться, предоставить доступ и сохранить настройки. Далее настройте расписание автоматического создания резервных копий — можно установить частоту для базы данных и файлов отдельно.

Плагин будет автоматически создавать локальные копии и выгружать их на Google Drive, что обеспечит двойной уровень защиты.

Пример кода для автоматического удаления старых локальных копий

Для оптимизации пространства на сервере можно автоматически удалять старые локальные копии, оставляя, например, только последние 5. Ниже пример функции с префиксом wpbackup, которую можно добавить в functions.php вашей темы или создать отдельный плагин:

function wpbackup_delete_old_local_backups() {
    $backup_dir = WP_CONTENT_DIR . '/updraft'; // Путь к папке с бэкапами UpdraftPlus
    if (!is_dir($backup_dir)) return;

    $files = glob($backup_dir . '/*');
    usort($files, function($a, $b) {
        return filemtime($b) - filemtime($a);
    });

    $files_to_delete = array_slice($files, 5); // Оставляем последние 5
    foreach ($files_to_delete as $file) {
        if (is_file($file)) {
            unlink($file);
        } elseif (is_dir($file)) {
            // Рекурсивное удаление папок, если нужно
            // Добавьте свою реализацию
        }
    }
}

add_action('wpbackup_daily_cleanup', 'wpbackup_delete_old_local_backups');

Эту функцию можно запускать через WP-Cron с помощью дополнительного хука, чтобы очистка происходила автоматически.

Организация резервного копирования с помощью WP-CLI и скриптов для удалённого хранения

Для тех, кто предпочитает работать с командной строкой, можно использовать WP-CLI для создания локальных копий базы данных и файлов, а затем скрипты rsync или scp для отправки их на удалённый сервер.

Пример команды для создания дампа базы данных с префиксом wpbackup:

wpbackup_dump_db() {
    wp db export wp-content/backups/db_backup_$(date +'%Y%m%d_%H%M%S').sql
}

После создания дампа можно использовать такой скрипт для копирования на удалённый сервер по SSH:

rsync -avz wp-content/backups/ user@remote-server:/path/to/backup/

Автоматизация запуска этих команд через cron обеспечит регулярное создание и синхронизацию резервных копий.

Пример интеграции с облаком Яндекс.Диск через API

Для удалённого хранения можно использовать API Яндекс.Диска с помощью PHP. Ниже пример функции для загрузки файла с префиксом wpbackup:

function wpbackup_upload_to_yandex_disk($file_path, $yandex_token) {
    $filename = basename($file_path);
    $url = 'https://cloud-api.yandex.net/v1/disk/resources/upload?path=' . rawurlencode('/backup/' . $filename) . '&overwrite=true';

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_HTTPHEADER, ['Authorization: OAuth ' . $yandex_token]);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

    $response = json_decode(curl_exec($ch), true);
    curl_close($ch);

    if (!isset($response['href'])) {
        return false;
    }

    $upload_url = $response['href'];
    $file_contents = file_get_contents($file_path);

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $upload_url);
    curl_setopt($ch, CURLOPT_PUT, true);
    curl_setopt($ch, CURLOPT_INFILE, fopen($file_path, 'r'));
    curl_setopt($ch, CURLOPT_INFILESIZE, filesize($file_path));
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

    $upload_response = curl_exec($ch);
    curl_close($ch);

    return $upload_response !== false;
}

Используйте эту функцию после создания локальной резервной копии, чтобы дополнительно выгружать данные в облако.

Рекомендации по безопасности и проверке резервных копий

Независимо от выбранной стратегии хранения, важно регулярно проверять целостность резервных копий. Для этого:

  • Периодически восстанавливайте копии на тестовом сервере.
  • Шифруйте резервные копии перед отправкой в удалённое хранилище, особенно если там содержатся чувствительные данные.
  • Ограничьте доступ к резервным копиям через права на сервере и настройки плагинов.

Например, в UpdraftPlus можно включить шифрование базы данных и файлов, а также настроить пароль для доступа к бэкапам.

Выводы и лучшие практики

Комбинация локальных и удалённых резервных копий — обязательный элемент надёжной стратегии безопасности WordPress сайта. Использование плагинов с поддержкой множества хранилищ, автоматизация процессов с помощью WP-CLI и скриптов, а также регулярная проверка и удаление устаревших копий убережёт вас от потери данных и простоев.

Для удобства и расширенного функционала рекомендуем ознакомиться с плагином UpdraftPlus на WPSHOP, который сочетает в себе простоту и мощь для реализации описанных подходов.

×

AI-плагин

WPGPT
Сам создает статьи для вашего сайта WordPress

SEO и мета-теги

Парсинг конкурентов

Изображения

Комментарии

Подробнее