Обсудить проект

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

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

Обложка статьи «Резервное копирование сайта: как не потерять всё за один день»
Содержание
  1. Что нужно копировать
  2. База данных
  3. Загруженные файлы
  4. Код сайта
  5. Конфигурация
  6. Как часто делать копии
  7. Где хранить: правило 3-2-1
  8. Сколько хранить
  9. Автоматизация
  10. Проверка восстановления
  11. Безопасность копий
  12. Сколько времени займёт восстановление
  13. Типичные ошибки
  14. Резервные копии и разработка
  15. Итог

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

Резервное копирование — дешёвая страховка от дорогих проблем. Разберём, как его организовать.

Что нужно копировать

База данных

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

Загруженные файлы

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

Код сайта

Если код хранится в системе контроля версий (например, Git) и в удалённом репозитории, его копия уже есть. Если нет — код тоже нужно копировать.

Конфигурация

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

План статьи «Резервное копирование сайта: как не потерять всё за один день»: Что нужно копировать; Как часто делать копии; Где хранить: правило 3-2-1; Сколько хранить; Автоматизация; Проверка восстановления

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

Частота определяется тем, сколько данных вы готовы потерять:

  • сайт-визитка, который редко меняется, — раз в неделю и перед каждым обновлением;
  • сайт с регулярными статьями и заявками — ежедневно;
  • интернет-магазин или система с заказами — несколько раз в день или чаще, иногда с непрерывным резервированием базы.

Обязательно делайте копию перед любыми изменениями: обновлением платформы, переносом, массовым редактированием.

Где хранить: правило 3-2-1

Классическое правило надёжного хранения:

  • 3 копии данных;
  • 2 разных типа хранилищ;
  • 1 копия — в другом месте, вне основного сервера.

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

Сколько хранить

Храните несколько копий за разные периоды: ежедневные — за последние одну-две недели, еженедельные — за пару месяцев, ежемесячные — дольше. Это позволит восстановиться, даже если проблема обнаружилась не сразу, — например, вредоносный код появился месяц назад.

Автоматизация

Ручные копии неизбежно забываются. Копирование должно выполняться автоматически по расписанию:

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

Многие хостинги делают свои резервные копии — это хорошо, но полагаться только на них не стоит: условия хранения и восстановления у провайдера могут не подойти именно вам.

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

Копия, из которой не получается восстановить сайт, бесполезна. Периодически проверяйте:

  • архив открывается и содержит все нужные данные;
  • база данных из копии разворачивается без ошибок;
  • сайт из копии запускается на тестовом сервере.

Также полезно заранее описать процедуру восстановления: кто, что и в каком порядке делает. В стрессовой ситуации это экономит часы.

Безопасность копий

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

  • храните копии в защищённом хранилище с ограниченным доступом;
  • при необходимости шифруйте архивы;
  • никогда не храните копии в публично доступной папке сайта — их могут скачать.

Сколько времени займёт восстановление

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

Типичные ошибки

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

Резервные копии и разработка

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

Итог

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