forked from TrueCloudLab/tzhash
39 lines
929 B
Bash
39 lines
929 B
Bash
|
#!/usr/bin/env bash
|
||
|
#set -x
|
||
|
|
||
|
BLOCK_SIZE=${1:-100M} # 100Mb by default
|
||
|
TMPDIR="${TMPDIR:-$(mktemp -d)}"
|
||
|
|
||
|
OUT="${OUT:-"${TMPDIR}/bighash"}"
|
||
|
|
||
|
echo "Preparing big file at ${OUT}..."
|
||
|
dd if=/dev/urandom of="$OUT" bs="$BLOCK_SIZE" count=1
|
||
|
|
||
|
echo "Make 4 smaller parts from ${OUT}..."
|
||
|
split -dn 4 "${OUT}" "${TMPDIR}/"
|
||
|
|
||
|
echo -n "Big file hash: "
|
||
|
TZALL=$(./bin/tzsum -impl avx2 -name "${OUT}" | awk '{print $1}')
|
||
|
echo "${TZALL}"
|
||
|
|
||
|
for i in $(seq -f "%02g" 0 3)
|
||
|
do
|
||
|
echo -n "Part ${i} hash: "
|
||
|
PART=$(./bin/tzsum -impl avx2 -name "${TMPDIR}/${i}" | awk '{print $1}')
|
||
|
echo "${PART}" | tee -a "${TMPDIR}/part.hashes"
|
||
|
done
|
||
|
|
||
|
echo -n "Cumulative: "
|
||
|
TZCUM=$(./bin/homo -concat -file "${TMPDIR}/part.hashes")
|
||
|
echo "${TZCUM}"
|
||
|
|
||
|
if [[ "$TZCUM" == "$TZALL" ]]; then
|
||
|
echo "Original and cumulative hashes are equal!"
|
||
|
else
|
||
|
echo "Original and cumulative hashes are NOT equal!"
|
||
|
fi
|
||
|
|
||
|
echo -ne "Cleaning up .. "
|
||
|
rm -rf "${TMPDIR}"
|
||
|
echo "Done!"
|