Мы перенесли около 220 ГБ данных с Windows 2003 Server на Windows 2008 Server, и из-за того, что на копирование этих данных потребуется время и необходимость держать их доступными для пользователей, мне пришла в голову идея: с помощью rsync
на сервере Ubuntu для посредничества при миграции. (Возможно, я выбрал подходящее решение для Windows, но приложения, которые я нашел, были слишком дорогими для такого одноразового использования, и разрешения не являются проблемой).
Все хорошо - и сегодня я делаю последнюю синхронизацию и подтверждаю, что новый сервер обновлен, используя diff, но я заметил странную вещь с электронными таблицами Excel (.xls).
Каждый экземпляр электронной таблицы Excel, который уже был скопирован во время предыдущей синхронизации, помечается rsync как «уже обновленный». Однако, когда я затем запускаю сравнение, мне говорят, что файлы различаются. Я вручную копирую их, так как их немного, но мне было интересно, что может быть причиной этого.
Ни у одного другого типа файла во всем дереве 220 ГБ не было такой проблемы - только файлы Excel / xls. Было бы здорово, если бы кто-нибудь мог дать объяснение.
rsync использует отметку времени. Может быть, Excel не устанавливает время последнего изменения?
В этом случае лучшим вариантом, вероятно, будет использование флага «--checksum» в rsync. Таким образом, все файлы будут просканированы. Это не означает, что все файлы будут передаваться снова и снова, будут передаваться только изменения, но это означает, что все файлы должны проверяться на каждом шагу.
Это также другие параметры: «--ignore-times» и «--size-only» (я не знаю разницы), но в отличие от --checksum файлы будут пропущены без предварительной проверки их содержимого, если размер файла совпадает.
Я согласен с @Zoredache, Robocopy - это все, что вам нужно.
Попробуйте это с вашего сервера 2008 года, чтобы скопировать один каталог в другой; включая безопасность, атрибуты и отметки времени ...
ROBOCOPY /SEC \\source\share\folder \\destination\share\folder
Чтобы скопировать все, как указано выше, плюс информацию о владельце и аудит ...
ROBOCOPY /COPYALL \\source\share\folder \\destination\share\folder
Дальнейшая информация...
Если вы хотите продолжить использование rsync, попробуйте параметр --checksum. Согласно справочная страница rsync, «Rsync находит файлы, которые необходимо передать, используя алгоритм« быстрой проверки »(по умолчанию), который ищет файлы, которые изменились по размеру или за время последнего изменения». Хотя я не уверен, почему rsync не заметил изменения метки времени в ваших файлах, вполне вероятно, что размер файла Excel останется неизменным между изменениями.