Назад | Перейти на главную страницу

Автоматизировать хеширование для каждого файла в папке?

У меня довольно много папок FTP, и я добавляю несколько каждый месяц и предпочитаю оставлять какой-то метод проверки их целостности, например файлы MD5SUMS, SHA256SUMS, ... которые я мог бы создать с помощью скрипта. Взять, к примеру:

find ./ -type f -exec md5sum $1 {} \;

Это прекрасно работает, но когда я запускаю его каждый раз для каждой суммы shaxxx, он создает сумму файла MD5SUMs, которая действительно не нужна.

Есть ли более простой способ, сценарий или обычный способ хэширования всех файлов в их файл сумм, не вызывая подобных проблем? Я действительно мог бы использовать лучший вариант.

Вы говорите, что проблема в том, что вы повторно запускаете md5sum в сгенерированном файле? Вы можете просто пропустить эти файлы. И, конечно же, для ускорения используйте gnu parallel:

find . -type f -a \! -name MD5SUMS | parallel -j+0 "md5sum {} >>MD5SUMS"

Однако из вашего описания я чувствую, что мне чего-то не хватает.

РЕДАКТИРОВАТЬ: исправлено перенаправление и добавлена ​​информация xargs:

Обратите внимание, что вам не обязательно использовать parallel, xargs тоже отлично работает (я просто думаю, что попробовать parallel - это весело). Вот эквивалентный вызов xargs:

find . -type f -a \! -name MD5SUMS -print0 | xargs -0 sum >> MD5SUMS

Пытаться md5deep

sudo apt-get install md5deep
md5deep -rel "test_directory" > results_file.md5

«Это команда, которую я буду запускать в каталоге, чтобы проверить наличие изменений».

md5deep -X list.txt -r Pictures/

Из http://linhost.info/2010/05/compare-hashes-with-md5deep-part-2/ :

Мне нужно было проверить целостность резервных копий / зеркал, содержащих большое количество файлов, и в итоге я написал программу командной строки под названием MassHash. Он написан на Python. Также доступна программа запуска GTK +. Вы можете проверить это ...

http://code.google.com/p/masshash/