Попросите подрядчика назвать дату самой старой копии вашего сайта. Если ей неделя, магазин защищён от поломки, которую заметили сразу. Ошибку, которая две недели прожила незамеченной, такие копии уже не исправят: каждая из них снята после неё.
Сколько копий хранить, решают один раз, при настройке, и потом об этом не вспоминают. Вспоминают в день, когда нужна копия месячной давности, а самая старая на хранилище - позавчерашняя.
Ошибки, которые замечают не сразу
Сломанный сайт видно в ту же минуту: страница не открывается, заказы не идут. С такой поломкой справится и вчерашняя копия. Опаснее ошибки, при которых сайт работает как обычно.
- →Обмен с 1С перезаписал описания товаров. Выгрузка затёрла тексты и свойства, которые редактор правил на сайте. Заметили через три недели, когда из поиска стало приходить меньше покупателей.
- →На сайт подсадили чужой код. Взломщик оставил код, который отправляет часть покупателей с телефона на чужой сайт. Владелец заходит с компьютера и ничего не видит. Код нашли через полтора месяца, и каждая копия за это время содержит его тоже.
- →При чистке базы удалили старые заказы. Через полгода покупатель оспаривает возврат, и заказ нужен целиком: состав, сумма, переписка.
Во всех трёх случаях нужна копия, снятая до ошибки. Чем дольше ошибка жила незамеченной, тем старше должна быть эта копия.
Что найдётся на хранилище
| Когда заметили ошибку | Копии за последние 7 дней | Копии лесенкой: дни, недели, месяцы, годы |
|---|---|---|
| На следующий день | Есть копия накануне | Есть копия накануне |
| Через 10 дней | Все копии сняты после ошибки | Есть копия за каждый из последних 14 дней |
| Через 3 недели | Все копии сняты после ошибки | Есть копия трёх-четырёхнедельной давности |
| Через 3 месяца | Все копии сняты после ошибки | Есть копия трёх-четырёхмесячной давности |
| Через 8 месяцев | Все копии сняты после ошибки | Ближайшая копия - примерно годовой давности |
Старую копию не разворачивают поверх работающего сайта: в нём уже есть заказы и покупатели, которых в копии нет. Её поднимают на отдельном сервере и переносят оттуда то, что пропало, - описания товаров, удалённые заказы, чистые файлы вместо заражённых. Как поднять копию отдельно от сайта, мы разобрали в статье про пробное восстановление.
Лесенка: чем старше копия, тем реже
Копии одной недели почти одинаковы, нужны они часто. Копии прошлого года нужны редко, зато без них не обойтись, когда ошибку нашли поздно. Поэтому свежие копии хранят все подряд, а чем дальше в прошлое, тем реже. У схемы есть устоявшееся название - "дед, отец, сын": ежедневные копии сменяются недельными, недельные - месячными, месячные - годовыми.
Сколько места это занимает
Хранить копию каждого дня за три года - больше тысячи архивов. Для сайта, у которого картинки и файлы товаров весят 23 ГБ, это около 25 ТБ. Лесенка держит те же три года истории примерно в 300 ГБ: на хранилище 12-13 копий, и со временем их число не растёт.
У каждой части сайта своя лесенка. База данных меняется с каждым заказом, поэтому её копии хранятся по дням две недели. Файлы сайта меняются реже - по дням хранится неделя. Картинки товаров почти не меняются, по дням держат только последние двое суток, дальше по неделям, месяцам и годам.
Как лесенку держит file.sieve
Для чистки хранилища у нас свой инструмент, file.sieve. Снимает и отправляет копии другой, simple.backup, о нём мы писали в статье о том, где хранить копию. file.sieve раз в сутки проходит по хранилищу и сверяет каждую копию с правилами.
- →Правило звучит как "по копии на каждый из последних 14 дней". Или "по копии на каждый из последних шести месяцев". У одной папки правил несколько, копия остаётся, если подходит хотя бы под одно. Остальные копии инструмент удаляет.
- →Правила свои у каждой папки. База, файлы сайта и картинки товаров лежат отдельно, и у каждой папки своя лесенка.
- →Копию из нескольких частей удаляет только целиком. Копия базы бывает разбита на несколько файлов. Если удалить один и оставить остальные, копия перестанет открываться, поэтому части живут и удаляются вместе.
Без такого правила копии чистят руками - обычно в день, когда кончилось место и очередная копия не записалась. Решать, что удалить, приходится на ходу, и легко стереть ту копию, которая понадобится через месяц.
Пять вопросов подрядчику
- 01Сколько копий сайта лежит на хранилище сейчас и от какого числа самая старая?
- 02Есть ли копия месячной, полугодовой и годовой давности?
- 03Хранятся ли копии базы данных и файлов по разным правилам?
- 04Кто удаляет старые копии: правило по расписанию или человек, когда кончается место?
- 05Что произойдёт, когда место на хранилище кончится: перестанут сниматься новые копии или удалятся старые? Какие именно?
На первый вопрос хороший ответ называет дату. Если самая старая копия моложе месяца, история короче, чем прожили ошибки из примеров выше. Свой сайт проверьте первым вопросом: попросите назвать дату самой старой копии и сравните её с сегодняшним числом.



