Есть ли способ скопировать с проверкой или просто проверить скопированные данные

Я - специалист по ГИС, частью этого является регулярное копирование огромного количества данных на диск - резервное копирование, архивирование и доставка. Иногда файлы на другом диске не совпадают с исходным диском, в порядке для каждого скопированного 4TB будет одна ошибка в одном файле (это 0,000000025%).

В настоящее время я использую RoboCopy или Windows Explorer copy, чтобы дублировать файлы на другие диски, и WinDiff, чтобы проверить их содержимое, поэтому я знаю, что вероятность ошибок очень мала. Этот процесс работает, но WinDiff работает медленно, иногда требуется больше времени для проверки, чем для первоначального копирования; RoboCopy не имеет переключателя проверки и проверки типа XCopy.

Ранее я использовал XCopy с ключом /v, но мне сообщили, что эта утилита устарела в Windows 7, и я не должен ее использовать. Индивидуальное создание MD5, контрольной суммы или хеша файлов не вариант, если только не существует эффективной библиотеки / метода / алгоритма, которую я могу реализовать на языке программирования, так как будет сотни тысяч отдельных файлов.

Вопрос заключается в следующем: есть ли способ проверки файлов по мере их копирования или программа проверки лучше, чем WinDiff, или, что еще лучше, гарантированный способ копирования этих файлов со 100% целостностью, поэтому мне не нужно проверять их?

Я могу написать код для C# / VB.net / C++ / Python / DOS Batch при условии, что необходимые библиотеки свободны или встроены. Меня не пугает командная строка, я помню, когда была только командная строка, поэтому утилиты / инструкции для DOS в порядке.

Так почему же это проблема, если у меня есть метод работы? Это не совсем, у меня есть рабочий метод, но я делал это так же, как Windows NT в конце 90-х; в конце 90-х это были ленты Exabyte и 100 МБ или меньше, тогда был оптический носитель, который можно было проверить менее чем за полчаса. Теперь, когда носители имеют большую емкость и относительно недороги, я обнаружил, что копирую и проверяю до 16 ТБ для одной доставки, а время проверки превышает дату доставки... Мне нужно, по крайней мере, искать лучший способ!

2 ответа

Решение

Программа, которую вы искали - xxcopy. У меня тоже было желание сравнить двоичные файлы при копировании нескольких сотен тысяч файлов для криминалистического анализа. Мне было все равно, это заняло немного больше времени, я не хотел создавать файл SFV или MD5, а затем запускать другую программу для этих файлов, я хотел что-то, что выполняло команду DOS "fc" на лету.

http://xxcopy.com/xxtb_027.htm

Вы хотите переключатель /V2

Хорошего дня.

Я годами использовал Fastcopy и terracopy в окнах, и они хорошо заменили методы копирования и вставки окон, у обоих есть процедура сравнения. Я думаю, что кто-то сказал, что метод сравнения для fastcopy - "лучший" метод. Оба они уловили очень незначительные ошибки, которые я сам вызвал из-за неправильной синхронизации оперативной памяти.

Существуют и другие отличия, которые делают FC и TC 2 совершенно разными актерскими программами, лучше испытать и откорректировать варианты обоих, чтобы иметь возможность их понять. Как и на ходах, ФК будет проверять каждый элемент перед удалением по одному ходу. ТС может быть легко настроен для сравнения всего как второго действия, так и повторного действия. У TC могут быть проблемы с сетевыми дисками, меньше людей имеют проблемы с FC при использовании сетевых дисков.

Я предпочитаю использовать FC, но что-то вроде одной ошибки в FC может потребовать больше усилий, так как TC, имеющий все элементы в списке и отображаемый список, всегда имеет свои преимущества. Они обе являются программами в стиле GUI, а не в стиле CMD, хотя они оба будут работать в командной строке или в пакетном режиме.
Оба могут обеспечить лучшую последовательность данных, ожидая, пока одна операция копирования не будет завершена, перед началом другой операции, поэтому создание фрагментированных беспорядков на дисках сокращается.

Ни один из них не делает "исправление тех последних нескольких файлов", которые не копируются правильно, как Windiff.exe, поэтому windiff был намного лучше, когда все терпит неудачу:-)

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

Заключение, попробуйте оба, посмотрите, что вы думаете.

Вы можете прочитать об инструменте Windows FCIV здесь. Эта ссылка объяснит, как установить инструмент, а также объяснит его использование. Для ваших целей вы можете использовать рекурсивную опцию инструмента и запустить эти две команды:

fciv D:\Path\To\Source -r -xml db.xml
fciv -v -bp E:\Path\To\Destination -r -xml db.xml

Заменить D:\Path\To\Source на путь к вашим исходным файлам и замените E:\Path\To\Destination на путь к файлам, которые вы скопировали.

Первая команда создаст базу данных с именем "db.xml" в папке, в которой вы запустили команду. Вторая команда будет использовать эту базу данных для проверки скопированных файлов с использованием контрольной суммы хэша md5.

Если все прошло успешно, вы получите сообщение "Все файлы успешно проверены".

Другие вопросы по тегам