#!/bin/bash echo "Тест проверки целостности ISO образов MSVSphere ОС" echo "==================================================" echo "" source ../../library/sh_lib.sh check=0 ISO_IMAGES_URLS_FILE='files/msvsphereiso_url.txt' while read LINE; do ISO_FILENAME=`basename $LINE` ISO_URL_PATH="${LINE%/*}" LOCAL_FILE="/home/pavel/MSVSphere-images/$ISO_FILENAME" CHECKSUM_FILE_URL="$ISO_URL_PATH/$ISO_FILENAME.CHECKSUM" echo "ISO URL: $LINE" echo "Local file path: $LOCAL_FILE" echo "Checksum File: $CHECKSUM_FILE_URL" # Get SHA256 hash value: # curl -s https://rsync.inferitos.ru/msvsphere/9.3/isos/x86_64/MSVSphere-9.3-x86_64-arm.iso.CHECKSUM | /bin/grep SHA256 | /bin/grep -v Hash: | /bin/awk -F '=' '{gsub(/ /, "", $2); print $2}' SHA256_HASH_FROM_FILE="$(curl -s $CHECKSUM_FILE_URL | /bin/grep SHA256 | /bin/grep -v Hash: | /bin/awk -F '=' '{gsub(/ /, "", $2); print $2}')" # curl -LJs -r 0-1048576 -o img.iso $LINE # sha256sum /home/pavel/MSVSphere-images/MSVSphere-9.3-x86_64-arm.iso | /bin/awk -F ' ' '{ print $1 }' SHA256_HASH_CALCULATED="$(sha256sum $LOCAL_FILE | /bin/awk -F ' ' '{ print $1 }')" # Test and print results echo "Calculated file SHA256 hash: $SHA256_HASH_CALCULATED" echo "SHA256 hash from CHECKSUM file: $SHA256_HASH_FROM_FILE" if [ "$SHA256_HASH_CALCULATED" == "$SHA256_HASH_FROM_FILE" ]; then echo 'SHA256 hash OK' else echo 'ERROR: SHA256 hash mismatch!!!' let check+=1 fi echo "--------------------------" done < $ISO_IMAGES_URLS_FILE check_test_status ${check} "$0" exit ${check}