Резервные копии сайта: что копировать, где хранить и как проверить, что копия рабочая
«У хостинга есть бэкапы» — фраза, после которой теряют сайты. Что входит в копию, как часто её делать, почему хранить рядом с сайтом нельзя и десятиминутная проверка.
«У хостинга есть бэкапы» — фраза, после которой чаще всего и теряют сайт. У хостинга есть копия сервера на вчера, из которой восстанавливают весь сервер целиком, а не ваш сайт на момент до ошибки. Разбираем, какими должны быть копии, чтобы из них действительно можно было восстановиться, и как это проверить за десять минут.
От чего защищает копия
Не столько от пожара в дата-центре, сколько от обычных вещей: удалили не тот раздел в админке, обновление CMS прошло с ошибкой, подрядчик «поправил» шаблон и сломал каталог, взломали и залили спам, база повредилась при переполнении диска. Во всех этих случаях нужна не копия сервера, а копия сайта — на вчера, на позавчера и на неделю назад, потому что поломку замечают не сразу.
Что копировать
- Файлы сайта — код, шаблоны, настройки.
- Базу данных — отдельным дампом, не копией файлов базы: файлы работающей базы часто нельзя восстановить.
- Загруженные пользователями файлы — картинки товаров, документы, видео. Их часто хранят отдельно от кода, и именно их забывают.
- Настройки сервера — конфигурация веб-сервера, сертификаты, задания cron. Без них восстановленный сайт откроется, но не заработает.
Как часто и сколько хранить
База — каждый день, файлы — каждый день, если сайт меняется, иначе раз в неделю. Хранить минимум семь дней ежедневных копий плюс несколько недельных: ошибку, которую заметили через две недели, из семидневных копий уже не откатить. Для интернет-магазина с заказами разумно копировать базу чаще — раз в несколько часов.
Где хранить
Не на том же сервере. Копия рядом с сайтом погибает вместе с ним при отказе диска и удаляется вместе с ним при взломе. Копии уносят на другой сервер или в объектное хранилище в России. Хорошая практика — «pull», когда сервер копий сам забирает данные с сайтов: даже если сайт взломан, злоумышленник не доберётся до копий, потому что с сайта к ним доступа нет.
Главное: проверять, что копия рабочая
Копия, из которой никто не восстанавливался, — не копия, а надежда. Проверка простая: раз в месяц развернуть сайт из копии на тестовом адресе и открыть его. Чаще всего выясняется одно из трёх — дамп базы пустой, потому что сменился пароль; в архив не попала папка с картинками; копии делаются, но из-за нехватки места последняя удачная — трёхмесячной давности.
Для проверки достаточно посмотреть на три вещи: дата последней копии — сегодняшняя; размер копии — примерно как у сайта, а не 2 КБ; архив открывается, и внутри есть и база, и загруженные файлы.
Что делаем мы
На сайтах на обслуживании копии делаются каждую ночь скриптом: база, код и загруженные файлы, семь дней хранения на сервере плюс копия на отдельный сервер, который сам забирает архивы. Раз в месяц одну из копий разворачиваем и открываем. Если сайт не у нас, а вопрос «есть ли у вас рабочая копия» вызывает паузу — это первое, что стоит выяснить у хостера или подрядчика, ещё до разговоров о продвижении и редизайне.
Нужен сайт, который сделан правильно?
Соберём сайт под задачу, с документами по 152-ФЗ, на российском хостинге и с поддержкой после запуска.