У меня довольно много папок 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 +. Вы можете проверить это ...