2

В качестве процедуры резервного копирования я хотел бы периодически синхронизировать файлы (например, через rsync) с компьютера с Windows на внешний жесткий диск.

Тем не менее, я задавался вопросом о повреждении файла. Если файл поврежден на хосте, его контрольная сумма изменится, rsync увидит его как измененный и скопирует поврежденный файл с хоста, перезаписав хорошую копию на HD.

Есть ли у rsync какой-либо механизм, который предотвращает это? Если нет, то как этого избежать?

РЕДАКТИРОВАТЬ: Чтобы уточнить, мне нужно сказать, изменилась ли контрольная сумма, потому что я добавил новое содержимое в файл или потому что файл был поврежден. В обоих случаях rsync увидит файл как "измененный" и запишет его поверх старой версии на HD. В первом случае rsync делает то, что я хотел, во втором - стирает мой старый действительный файл с мусором.

2 ответа2

2

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

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

rsync поддерживает это (по крайней мере в * nix) с параметром командной строки --link-dest .

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

И чтобы ответить на прямой вопрос: у rsync нет реальной обработки поврежденных файлов. Вероятно, он будет обрабатывать файлы, которые не могут быть прочитаны, если только вы не запускаете его в режиме замены на месте, но он не будет смотреть на это изображение JPEG или PDF-документ и определять, что он искажен, что делает его странным при рендеринге. , Это просто не его работа.

Сравните это примечание в ответе на вопрос: почему RAID не является резервной копией? при сбое сервера, Джаред Оберхаус:

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

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

и рассказал, как сказал Йорг Миттаг в другом ответе на тот же вопрос, подчеркивая разницу между избыточностью и резервным копированием:

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

-1

Если вы хотите проверить содержимое файла, вы можете использовать опцию «--checksum». Эта опция вычисляет хеш для каждого переданного файла.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .