К содержимому
WordPress и техника

Как настроить резервное копирование блога

Как настроить резервное копирование блога

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

Что именно копировать и как часто

В блоге на WordPress ценных вещей пять. База данных — в ней тексты, комментарии, настройки темы и плагинов, пользователи. Папка wp-content/uploads — все картинки и файлы, самая тяжёлая часть. Папки themes и plugins — их можно скачать заново, но правки дочерней темы и настройки плагинов лежат именно там и в базе. Файл wp-config.php с доступами к базе и .htaccess с редиректами. Ядро WordPress копировать не нужно: оно скачивается с wordpress.org за минуту. Базу копируют ежедневно — она весит десятки мегабайт и меняется каждый день; файлы — раз в неделю, а лучше инкрементально, только новое. У блога с пятьюстами записями база занимает 50–150 мегабайт, а uploads — от двух до десяти гигабайт, и именно они определяют, сколько места нужно в облаке.

Сколько копий хранить, решается сценарием потери. Сломанное обновление замечают в тот же день — хватит вчерашней копии. Взлом с внедрённым кодом замечают через две-три недели, когда Яндекс Вебмастер пишет о вредоносном коде, — нужна копия трёхнедельной давности, ещё чистая. Случайно удалённая рубрика с сорока статьями обнаруживается через месяц. Отсюда рабочая схема: семь ежедневных копий базы, четыре еженедельных полных, две-три ежемесячных — и старые удаляются сами. В облаке это занимает три-четыре объёма папки uploads.

Инфографика: резервное копирование блога в цифрах — три копии в трёх местах, семь ежедневных копий базы, пробное восстановление раз в квартал
Инфографика: резервное копирование блога в цифрах — три копии в трёх местах, семь ежедневных копий базы, пробное восстановление раз в квартал

Что даёт хостинг и почему этого мало

Beget и Timeweb делают копии файлов и баз каждый день и дают восстановить их из панели самостоятельно; на reg.ru и у части других хостингов копии есть не на всех тарифах или восстанавливаются по заявке в поддержку. Это удобно и бесплатно, и это первая копия из трёх. Но глубина хранения — дни, а не месяцы; копия лежит на тех же серверах, что и сайт; доступ к ней пропадает вместе с доступом к аккаунту — при неоплате, блокировке за нагрузку или спорной жалобе. Правило из мира администраторов называется «3-2-1»: три копии, на двух разных носителях, одна вне площадки. Для блога это копия хостинга, копия в облаке и копия на домашнем диске раз в месяц.

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

Плагин и облако: UpdraftPlus за полчаса

Бесплатной версии UpdraftPlus для блога достаточно: она делает копии базы и файлов по расписанию, хранит заданное число копий и отправляет их в облако. Из хранилищ, работающих из России без оплаты, — Google Drive (через авторизацию аккаунтом), FTP или SFTP на любой другой хостинг и WebDAV. Через WebDAV подключается Яндекс Диск: адрес webdav.yandex.ru, логин и пароль приложения, созданный в настройках Яндекс ID. Хранилища S3 от Selectel, VK Cloud или Яндекса тоже подходят, но в UpdraftPlus они открываются в платной версии; бесплатно их поддерживает BackWPup. В настройках плагина исключите из копии папки кэша и папку самих копий, иначе архив растёт вдвое с каждым разом.

  1. Установить UpdraftPlus, открыть «Настройки → Резервные копии UpdraftPlus → Настройки».
  2. Расписание: файлы — еженедельно, база — ежедневно; хранить 4 и 7 копий.
  3. Выбрать хранилище: WebDAV для Яндекс Диска или Google Drive, пройти авторизацию.
  4. Исключить папки кэша и updraft, включить отчёт на почту.
  5. Нажать «Создать копию сейчас» и убедиться, что архивы появились в облаке.

Альтернативы есть. All-in-One WP Migration делает один архив всего сайта одной кнопкой и удобен для переноса, но по расписанию бесплатно не работает, а импорт больше 512 мегабайт требует платного расширения. Duplicator — тоже про перенос. BackWPup — полноценное расписание и больше бесплатных хранилищ, интерфейс суше. Ручной способ никто не отменял: экспорт базы из phpMyAdmin и скачивание uploads по FTP раз в месяц на домашний диск — это и есть третья копия по правилу «3-2-1». Отчёт на почту включите обязательно: копирование ломается тихо, когда кончается место или протухает токен облака, и без письма вы узнаете об этом в день аварии.

Проверка восстановления: копия, которую не разворачивали, не существует

Восстановление проверяют не на живом сайте. Создайте на том же хостинге тестовый поддомен, поставьте туда чистый WordPress и UpdraftPlus, загрузите в него архивы из облака и нажмите «Восстановить». После разворачивания плагин сам заменит адрес сайта на тестовый; если нет — плагин Better Search Replace меняет старый домен на новый по всей базе. Затем откройте пять записей с картинками, войдите в админку, проверьте меню и виджеты. Что обычно ломается: не докачался один из архивов, в .htaccess остались правила старого адреса, у папок сбились права. Каждая из этих находок стоит десять минут на тесте и полдня в день аварии. Повторять раз в квартал и после смены хостинга, темы или плагина копий.

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

Копия, которую ни разу не восстанавливали, — это не копия, а надежда, что архив не битый.

Что ещё скопировать, кроме сайта

Вокруг блога живут вещи, которых в архиве WordPress нет. DNS-записи домена — выпишите их из панели регистратора, при переезде они спасают день. Настройки SEO-плагина и редиректов — у Rank Math, Yoast и Redirection есть свой экспорт в файл. База подписчиков рассылки — экспорт из сервиса раз в месяц. Цели и счётчик Метрики — номер счётчика и список целей текстом. Ключи API, которые вы вставляли в плагины: почтовый SMTP, карты, платёжки. Список установленных плагинов с версиями — его показывает «Здоровье сайта» во вкладке «Информация», оттуда он копируется одной кнопкой. Раз в месяц: посмотреть письмо-отчёт, свободное место в облаке и срок оплаты домена. Если возиться с этим некому, настройку копирования и техническое сопровождение сайта берёт на себя агентство «Креатифф».

Вопрос — ответ

Почему копий у хостинга недостаточно?

Хостинг хранит слепки несколько дней, копия лежит на тех же серверах, и доступ к ней пропадает вместе с аккаунтом. Поэтому нужна собственная копия вне хостинга.

Что копировать в блоге на WordPress?

База данных, папка uploads с картинками и файлами, папки themes и plugins, файл wp-config.php и .htaccess. Ядро WordPress копировать не нужно, его скачивают заново.

Как часто делать копии базы и файлов?

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

Как настроить плагин для резервных копий?

Установите UpdraftPlus и откройте его настройки. Выберите хранилище, исключите папки кэша и включите отчёт на почту, чтобы сбой не остался незамеченным.

Читайте также