Резервные копии сайта: как делать и проверять

Про резервные копии вспоминают в худший момент: хостинг удалил аккаунт, обновление сломало сайт, кто-то стёр раздел в админке. Тогда выясняется, что копий нет, или они есть, но старые, неполные или не восстанавливаются.

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

Что входит в копию

Сайт это не только файлы. Полная копия обычно состоит из нескольких частей:

  • Код и файлы сайта, включая загруженные картинки и документы
  • База данных: заявки, заказы, пользователи, тексты из админки
  • Настройки сервера и окружения: конфиги, переменные, задания по расписанию
  • Список доступов и сервисов, от которых зависит сайт, без самих паролей в открытом виде

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

Где хранить

Копия, которая лежит на том же сервере, что и сайт, защищает только от собственной ошибки. Если сервер недоступен, аккаунт заблокирован или диск вышел из строя, она пропадёт вместе с сайтом.

Известный ориентир здесь правило 3-2-1: несколько копий, на разных носителях, и хотя бы одна в другом месте. Для небольшого сайта это может быть копия у хостинга плюс автоматическая выгрузка в отдельное облачное хранилище, к которому у хостинга нет доступа. Выбор хостинга с нормальными копиями разобран в тексте как выбрать хостинг.

Как часто делать

Частота зависит от того, сколько данных не жалко потерять. Сайт-визитку, который меняется раз в месяц, можно копировать редко. Магазин или сервис с заявками каждый день стоит копировать хотя бы ежедневно, а базу данных иногда чаще.

Отдельно полезно делать копию перед любым заметным изменением: обновлением CMS, переездом, крупной правкой. Такие правки вообще лучше сначала пробовать на тестовой копии сайта.

Старые копии стоит хранить какое-то время, а не только последнюю. Если сайт заразили или данные испортились незаметно, последняя копия может уже содержать проблему.

Проверка восстановления

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

  • Время от времени разворачивайте копию на отдельном месте и проверяйте, что сайт открывается
  • Смотрите, что в восстановленной базе есть свежие заявки и заказы
  • Запишите шаги восстановления так, чтобы их мог повторить другой специалист
  • Настройте уведомление, если очередная копия не создалась

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

Копии и безопасность

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

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