Как проверить целостность большого количества файлов?
Проверить целостность большого количества файлов
Имеется:
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 на раз находит битые архивы (только архивы), выдавая сообщение: «архив повреждён», тоже ничего не сравнивая.
Извините, если слишком много букв, постарался описать проблему максимально подробно, ничего не буду иметь против, если модераторы отсекут, что посчитают лишним.
Всем, кто проявил участие, большие спасибо.
Ближе всего к теме ответил Radiocity, да, контрольные суммы закачек торрента сохранились. Фокус в том, что я редко держу на раздаче файлы дольше пяти-шести недель. Потом переношу в понятные моей логике директории, соответственно правлю имена директорий, чтобы не превращать архив в помойку. Все закачки за последние два месяца в сохранности. Пока работа в этом направлении битых файлов не выявила. Кто бы сказал, что делать с собранным за предыдущие шесть лет? IlyaEvseev предлагает скачивать дважды, потом сравнивать или конвертировать в другой формат, то же советует Rsa97. Спасибо, господа, только вы, очевидно, невнимательно прочитали вопрос. Речь идёт о нескольких десятках тысяч файлов, в некоторых случаях не то что путей закачки, даже сайтов, откуда это закачано, уже не существует. Я только хотел найти среди своих файлов несколько битых, два из которых я обнаружил совершенно случайно.
Прошу прощения, по-видимому, я задал вопрос, ответа на который на сегодняшний день нет.
Для правильного вопроса надо знать половину ответа
Вижу только один выход. Берёте описание формата интересующего Вас файла и проверяете структуру файла на соответствие формату. Если файл содержит в себе контрольные суммы - повезло, если нет, то гарантировать целостность всё равно не получится. Формат RTF, насколько я помню, контрольных сумм не имеет, и если структура файла не повреждена, то и "казнить, нельзя помиловать" и "казнить нельзя, помиловать" являются корректными вариантами файла.
Упс. Вот тут поподробнее, пожалуйста. Проверить соответствие структуры файла на соответствие формату (особенно интересуют pdf и djvu) - для этого есть какой-то софт? Или опять только winhex, только хардкор?
pdf общей контрольной суммы не имеет, djvu вроде тоже. Так что только проверять структуру, или, как уже советовали, пытаться открыть файлы консольными утилитами (например конверторами) и смотреть на результат.
Архивы можно проверять -- во всех популярных форматах есть контрольные суммы, плюс архиваторы умеют проверять корректность заголовков.
Скачивать можно дважды, затем сравнивать -- если содержимое совпадает, можно считать, что оно такое же и на сервере.
Всякие документы можно прогонять через конвертеры, например, rtf2txt, pdf2txt и т.д.
Сконвертировалось без ошибок -- значит, нормальный.
Но есть риск, что ошибку вызовет не испорченный документ, а кривой конвертер.
Спасибо,только вы, очевидно, невнимательно прочитали вопрос. Речь идёт о нескольких десятках тысяч файлов, в некоторых случаях не то что путей закачки, даже сайтов, откуда это закачано, уже не существует. Я только хотел найти среди своих файлов несколько битых, два из которых я обнаружил совершенно случайно.