Автоматизировать хеширование для каждого файла в папке?
У меня довольно много папок FTP, и я добавляю несколько папок в месяц и предпочитаю оставлять какой-то метод проверки их целостности, например, файлы MD5SUMS, SHA256SUMS, ... которые я мог бы создать с помощью скрипта. Взять, к примеру:
find ./ -type f -exec md5sum $1 {} \;
Это прекрасно работает, но когда я запускаю его каждый раз для каждой суммы shaxxx впоследствии, она создает сумму файла MD5SUMs, который на самом деле не нужен.
Есть ли более простой способ, или сценарий, или распространенный способ хеширования всех файлов в их файл сумм, не вызывая подобных проблем? Я мог бы действительно использовать лучший вариант.
3 ответа
Вы говорите, проблема в том, что вы повторно запускаете md5sum для сгенерированного файла? Вы можете просто пропустить эти файлы. И, конечно же, используйте gnu параллельно, чтобы ускорить процесс:
find . -type f -a \! -name MD5SUMS | parallel -j+0 "md5sum {} >>MD5SUMS"
Однако из вашего описания я чувствую, что мне чего-то не хватает.
РЕДАКТИРОВАТЬ: исправлено перенаправление и добавлена информация о xargs:
Обратите внимание, что вам не нужно использовать параллель, xargs тоже отлично работает (я просто думаю, что это весело - попробовать параллель). Вот эквивалентный вызов 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+ Launcher также доступна. Вы можете проверить это...