Я синхронизирую два диска с помощью rsync (cygwin) с помощью следующей команды rsync -a -H /cygdrive/e/ /cygdrive/d/
í у меня около 3 ТБ данных и, вероятно, около 1 миллиона файлов (включая) жесткие ссылки. В первый раз это заняло около 1-2 дней, если я правильно помню. Если í снова запустить эту команду, это займет много времени, даже если ничего не обновляется. Это займет пару часов ---12 часов. Разве это не должно занять намного меньше времени?
решение1
Вы копируете между двумя местами в одной системе. Это отключает алгоритм дельта и возвращает rsync
к причудливой реализации cp -a
.
Флаг -H
заставляет rsync
сохранять запись каждого файла с более чем одной жесткой ссылкой, чтобы можно было реконструировать жесткие ссылки в цели. Это увеличивает использование памяти (эмпирически я бы сказал, довольно сильно), что в свою очередь может повысить требования к вашей системе.
Наконец, Cygwin rsync
значительно медленнее, чем собственная реализация UNIX/Linux. Я не определил, связано ли это с тем, что он использует слой совместимости поверх Windows, или с тем, что файловая система медленнее, или даже с чем-то совершенно другим. Но он медленнее для в остальном идентичного набора файлов на том же оборудовании.
решение2
Это не полный ответ, но я думаю, что он может быть действительно ценным для некоторых людей, оказавшихся в такой же ситуации. Я в итоге сделал rsync из Linux, и это сработало без проблем. Если у вас возникла эта проблема, попробуйте хотя бы загрузить Ubuntu/CentOS или ваш любимый дистрибутив Linux, даже с CD, и посмотрите, сработает ли это.