Robocopy — Возможная проблема при регистрации выходных данных?

Robocopy — Возможная проблема при регистрации выходных данных?

Я оцениваю, подойдет ли Robocopy для моего скрипта резервного копирования, который будет выполнять резервное копирование только новых файлов с диска C (NTFS) на USB-накопитель (exFAT).

У меня есть эта команда, которую я запускаю. Она выполняет свою работу, но, похоже, происходит неправильное ведение журнала, когда местом назначения является съемный USB-накопитель, и он тоже отформатирован в exFAT. Эта проблема не возникает, если местом назначения является FAT или NTFS.

robocopy C:\Temp\F1 D:\F1 /XO /E /FFT /LOG:C:\Temp\robo.txt /NP  /NDL /R:1 /W:3

В приведенной выше команде D: — это буква флеш-накопителя, а команда или файл .BAT всегда запускались от имени администратора в Windows 7 Ultimate 64.

Проблема возникает в случае 2, как описано ниже.

Случай 1 - см. скриншот журнала. Кажется, все правильно. Все скопированные имена файлов регистрируются, и статистика копирования правильная. 3 Файла скопированы.

введите описание изображения здесь

Случай 2 - Я добавляю еще один файл в источник. Теперь он копирует только этот новый файл, но показывает все файлы в журнале, а статистика неверна. Он говорит, что скопировано 4 файла.

введите описание изображения здесь

Этот тип непоследовательного ведения журнала происходит только тогда, когда местом назначения является флешка, отформатированная в exFAT. Никаких проблем с FAT или NTFS.

Операционная система - Windows 7 Максимальная 64.

Вопросы.

  1. Это какая-то проблема или ошибка в журнале Robocopy, когда местом назначения является флеш-накопитель exFAT?
  2. Если нет, то может быть я упустил какую-то опцию в команде, которая должна это исправить?

Буду весьма признателен за дополнительную ясность по этому вопросу.


Редактировать

Случай 3 — Никаких изменений, в файле журнала по-прежнему перечислены все 4 файла.

введите описание изображения здесь

/FFT или его отсутствие не изменяют данные журнала.

Я проверил с помощью Free File Sync, оба каталога синхронизированы по размеру файла, временной метке и фактическому содержимому. Я думаю, что это не копирование, а все еще регистрация.

введите описание изображения здесь


Редактировать 2

Я поместил 2 больших файла в источник вместе 312 МБ. Копирование на USB 2 флешки заняло 42 секунды. Журнал в порядке.

введите описание изображения здесь

Теперь я снова запускаю команду. Она завершается за 0 секунд, но все еще регистрирует 2 файла, и статистика показывает, что 2 файла скопированы. Я уверен, что это невозможно с данными объемом 312 МБ на USB 2.0-флешке.

введите описание изображения здесь

решение1

Версия Robocopy на моем Windows 76.1.7601.23403.

Эта версия Robocopy датируется 2009 годом. Она устарела на 10 лет.

Я попытался скопировать Robocopy с ПК с Windows 10 (64) на свой Windows 7 (64), но когда команда помещается в .BAT, возникает ошибка, сообщающая, что это недопустимое приложение Win32.

К сожалению, Windows 7отсутствуют определенные предпосылкитребуется для текущего исполняемого файла Robocopy, поэтому последний исполняемый файл нельзя просто скопировать из системы Windows 10:

Даже копирование из Windows 8 не сработает, поскольку базовые компоненты должны его поддерживать.

Robocopy — это всего лишь утилита, которая обращается к базовым компонентам файловой системы.

введите описание изображения здесь

Мне не удалось воспроизвести эту проблему в моей системе Windows 10 1903, в которой установлена ​​последняя версия Robocopy.

Нет сомнений, что проблема в журналах, а не в самом процессе копирования. Robocopy на самом деледелаетименно то, что и должно быть, просто сообщается неправильно.

Мгновенные копии, которые мы здесь видим, невозможны. Если копирование файла с одного тома на другой занимает 42 секунды в первый раз, то тот же процессне мочьво второй раз это займет 0 секунд!

Какие бы узкие места ни ограничивали скорость первоначального копирования файлов, они точно так же повлияют на последующие копии (т. е. на пропускную способность USB-порта и скорость записи на флэш-накопитель).

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

Расхождения в журналах:

  • Зеленый = правда.

  • Красный = ложь.

введите описание изображения здесь

Просто чтобы прояснить, что показано в первом зеленом поле: я добавил "Нет 100% нового файла" строки, показывающие, где журнал был правильным, чтобы показать пустое место. Были ли эти копии файловДействительното рядом с каждым успешно скопированным файлом будут отображаться «100%» и «Новый файл».

Этих копий файлов никогда не было. ОП мог бы поместить туда 20 ГБ данных, и Robocopy все равно сообщил бы о мгновенной передаче!

Заключение:

Автор статьи не сможет обновить свою версию Robocopy, поскольку Windows 7 не может использовать ничего новее версии 2009 года.

Его непосредственные варианты — использовать XCOPY или какую-либо другую утилиту для копирования файлов.

Когда автор сообщения в конечном итоге обновится до более новой версии Windows, например, Windows 10, у него будет последняя версия Robocopy, в которой эта старая ошибка будет исправлена, и этот сбой в ведении журнала больше не будет возникать.

решение2

Известно, что Robocopy вызывает проблемы при передаче файлов между различными файловыми системами, например, из-за того, что NTFS использует 64-битную временную метку, а ex FAT использует 3 отдельных поля для хранения временной метки, один из которых представляет собой часовой пояс для времени UTC.

И есть несколько примеров, когда сводка не отображает правильную информацию.например здесь. Я бы предположил, что расчет сводки (грубо говоря) не интегрирован напрямую в процедуру копирования, так что это какая-то ошибка. Но я не нашел ни одного "официального" документа, подтверждающего это. Вы также можете проверить, что на самом деле верно, журнал или сводка.

Связанный контент