Точная копия повторяет и ошибки источника. Чтобы вернуть вчерашнее состояние, нужно другое.
Зеркало хранит одно состояние — то, что было в источнике при последнем запуске. Удалили файл в источнике по ошибке — следующий rsync --delete удалит его и в зеркале. Испортили конфигурацию — зеркало получит испорченную.
Прошлое состояние возвращают из сохранённых версий: архива за каждую ночь с датой в имени или программы вроде restic, которая хранит версии данных по датам. Сколько версий держать и когда удалять старые, задают правила хранения копий.
Зеркало нужно там, где важна точная копия на сейчас: перенос данных на другой диск, запасной сервер с теми же файлами.
Вчера днём из source по ошибке удалили orders.csv, ночью отработал rsync -a --delete source/ mirror/. Где теперь взять файл?
-
В mirror файла тоже нет: обратный запуск вернёт в source ровно то, что в нём уже есть.
-
Ночной запуск с
--deleteуже удалилorders.csvиз mirror:ls mirrorего не покажет. -
План сравнивает два текущих дерева, а файла нет ни в одном: вывод будет пустым.
Зеркало повторило удаление, поэтому файл остался только в копии, сохранённой до него. Такие копии и срок их хранения задают отдельно от синхронизации.
Главное в шаге
- Зеркало хранит одно, последнее состояние источника и повторяет его ошибки, включая удаления.
- Прошлое состояние возвращают из сохранённых версий: архивов по датам или версий в программе резервного копирования.