На этот вопрос уже есть ответ:
Я хочу клонировать один очень большой каталог (много терабайт файлов размером несколько гигабайт) в другой на другом диске. Я использовал эту команду:
ionice -c 3 rsync -avz /path/to/sourcedir/ /path/to/destdir/
Процесс занимает день и чаще всего прерывается, поэтому используется rsync
, чтобы иметь возможность возобновить работу без перезапуска с нуля. Теория должна заключаться в том, что указанная выше команда является идемпотентной, поэтому, когда что-то выходит из строя, я должен просто иметь возможность повторно выполнить ту же команду, чтобы она работала там, где она была прервана, и продолжала оттуда.
Теперь, поскольку цель операции состоит в том, чтобы вывести из эксплуатации и перезапустить исходный диск, перед этим я хотел быть полностью уверен, что все файлы были правильно скопированы. Поэтому я использовал подход, описанный в , этот вопрос , чтобы сравнивать каждый файл побайтно. Конечно, было несколько файлов с другим хешем.
Итак, вопрос теории: работает ли rsync
, в отличие от того, что я понял, только с именами файлов, а не с содержимым или, по крайней мере, с длиной?
И (более важный) практический вопрос: есть ли другие варианты, которые я мог бы использовать вместо этого, чтобы заставить rsync
создать точный клон исходного каталога? В частности, в случае, когда rsync
запускается, когда в целевом каталоге уже есть файл с тем же именем, что и в исходном каталоге, но с другим содержимым, я хочу, чтобы команда гарантировала его замену (или "завершено") фактическим исходным файлом из исходного каталога.
Да можно сделать rsync
изучите файлы, чтобы проверить, что все соответствует. От man rsync
-c, --checksum skip based on checksum, not mod-time & size
Конечно, это будет медленно, но rsync
должен найти различия, которые не нашла бы нормальная проверка.
Но rsyncing не клонируется. Если Вы хотите клонированную копию, используйте Clonezilla.