Я интересуюсь хранением индикатора файла / целостность каталога между двумя заархивированными копиями каталогов. Это - приблизительно 1 ТБ данных, хранивших рекурсивно на жестких дисках. Существует ли способ использовать OpenSSL для генерации единственного хеша для всех файлов, которые могут использоваться в качестве сравнения между двумя копиями данных, или позже проверить, что данные не изменились?
Вы не можете сделать кумулятивного хеша их всех для создания единственного хеша, но можно сжать их, сначала затем вычисляют хеш:
$tar -czpf archive1.tar.gz folder1/
$tar -czpf archive2.tar.gz folder2/
$openssl md5 archive1.tar.gz archive2.tar.gz
рекурсивно хешировать каждый файл:
$find . -type f -exec openssl md5 {} +
Выполнение суммы md5 на tar никогда не работало бы, если все метаданные (дата создания, и т.д.) не были идентичны также, потому что хранилища tar что как часть его архива.
Я, вероятно, сделал бы md5 сумму содержания всех файлов:
find folder1 -type f | sort | tr '\n' '\0' | xargs -0 cat | openssl md5
find folder2 -type f | sort | tr '\n' '\0' | xargs -0 cat | openssl md5