Как проверить целостность большого количества файлов?

Проверить целостность большого количества файлов
Имеется:
1. Система с Windows XP SP2, можно загрузиться с mandriva и примонтировать нужный раздел, но в линухе я полный чайник.
2. Несколько тысяч файлов, скачанных с интернет-библиотек (если играет роль, lib.ru, az.lib.ru, publ.lib.ru, ihtik.lib.ru, lib.rus.ec, flibusta.net, reeed.ru, litmir.net, gutenberg.org, feedbooks.com, manybooks.net, amazon.com, rutracker.org, как же без него...); файлы в различных форматах, преобладают fb2, pdf, djvu, rtf, epub, mobi, lit, azw и совсем немного mp3.
В Гигабайтах это не так много, не более 50 Гб. Директории более-менее упорядочены по авторам, библиотекам, глубина вложенности не более 3.
3. Скачивалось всё это богатство посредством Download Accelerator Plus, μTorrent, Free Download Manager и других программ, авторы которых уверяют, что все файлы проверяются на целостность.
В реальности, когда встала задача всё упорядочить, при ручном открытии файла находим достаточно большой процент битых файлов. HDD исправен, файлы копируются и перемещаются с теми же ошибками, с какими были сохранены на диск.
Задача:
Как выявить битые файлы, не обходя их все вручную?
Для любителей давать совет «сравнить контрольные суммы» подсказка: сравнить можно ДВА и более предметов, имеющихся в наличии. Во-первых, если для нескольких тысяч файлов не всегда возможно установить, откуда это было скачано, то что сравнивать? Оговорка обусловлена тем, что я за последнюю неделю изрядно погуглил и пояндексил вопрос, наслушался на год вперёд рецептов с контрольными суммами, но ничего адекватного не нашёл, потому и обращаюсь к уважаемому сообществу. Во-вторых, далеко не все релизёры вместе с файлом выкладывают его md5 или sha или хотя бы что-нибудь. В-третьих, если один раз файл был закачан с ошибкой (а я уверен на 99,95% что дело в закачке, в силу того, что не все серверы поддерживают даунлод-менеджеры, докачку и т. д.), какова вероятность, что второй раз передача будет безошибочной?
Пара подсказок:
Если Foxit Reader при попытке открытия пишет: “Format Error. Not a PDF or corrupted”, следовательно, ему нет необходимости что-либо с чем-либо сравнивать.
И обнаруженный мною (нечаянно) чит: ESET NOD 32 на раз находит битые архивы (только архивы), выдавая сообщение: «архив повреждён», тоже ничего не сравнивая.
Извините, если слишком много букв, постарался описать проблему максимально подробно, ничего не буду иметь против, если модераторы отсекут, что посчитают лишним.
  • Вопрос задан
  • 10578 просмотров
Пригласить эксперта
Ответы на вопрос 2
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Вижу только один выход. Берёте описание формата интересующего Вас файла и проверяете структуру файла на соответствие формату. Если файл содержит в себе контрольные суммы - повезло, если нет, то гарантировать целостность всё равно не получится. Формат RTF, насколько я помню, контрольных сумм не имеет, и если структура файла не повреждена, то и "казнить, нельзя помиловать" и "казнить нельзя, помиловать" являются корректными вариантами файла.
Ответ написан
IlyaEvseev
@IlyaEvseev
Opensource geek
Архивы можно проверять -- во всех популярных форматах есть контрольные суммы, плюс архиваторы умеют проверять корректность заголовков.

Скачивать можно дважды, затем сравнивать -- если содержимое совпадает, можно считать, что оно такое же и на сервере.

Всякие документы можно прогонять через конвертеры, например, rtf2txt, pdf2txt и т.д.
Сконвертировалось без ошибок -- значит, нормальный.
Но есть риск, что ошибку вызовет не испорченный документ, а кривой конвертер.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы