Add md5 checksum to ensure all files are OK

This commit is contained in:
Jeremy Gardais 2016-09-15 11:16:33 +02:00
parent fec7c872d9
commit 4a46f213b1
1 changed files with 31 additions and 7 deletions

View File

@ -21,8 +21,8 @@ done
[[ $i -eq 0 ]] || exit $i [[ $i -eq 0 ]] || exit $i
# this part depends of the event # this part depends of the event
keylabel="OPTIQUE2015" # label of the keys keylabel="CHOCOLAS" # label of the keys
wherethefilesare="/homes/carre/optique2015" # where are the files you need to copy wherethefilesare="/ipr/home.ipr/jegardai/chocolas" # where are the files you need to copy
badkeyid="abcd" # depends of key models (lsusb) badkeyid="abcd" # depends of key models (lsusb)
goodkeyid="058f" goodkeyid="058f"
@ -30,6 +30,11 @@ goodkeyid="058f"
keysearchbadid=$(lsusb | grep $badkeyid | wc -l) keysearchbadid=$(lsusb | grep $badkeyid | wc -l)
keysearchgoodid=$(lsusb | grep $goodkeyid | wc -l) keysearchgoodid=$(lsusb | grep $goodkeyid | wc -l)
keysearchid=$(($keysearchbadid+$keysearchgoodid)) keysearchid=$(($keysearchbadid+$keysearchgoodid))
mountpath="/mnt/usbkey"
# MD5SUM check
sourcemd5="/tmp/source_directory.md5"
destmd5="/tmp/destination_directory.md5"
case $keysearchid in case $keysearchid in
0) printf "%40s\n" "${red}Alert: No usb key detected${normal}" ;; 0) printf "%40s\n" "${red}Alert: No usb key detected${normal}" ;;
@ -40,6 +45,11 @@ case $keysearchid in
if [[ $keysearchid != $nbsd ]]; then if [[ $keysearchid != $nbsd ]]; then
printf "%40s\n" "${red}Alert: Error 1${normal} Keysearchid: ${keysearchid}" printf "%40s\n" "${red}Alert: Error 1${normal} Keysearchid: ${keysearchid}"
else # if everything is ok else # if everything is ok
# Generate the md5sum for source directory
pushd "${wherethefilesare}"
find . -type f -exec md5sum {} \; | sort > "${sourcemd5}"
popd
for i in $(seq 1 $keysearchid) # from 1 to $keysearchid by step of 1 for i in $(seq 1 $keysearchid) # from 1 to $keysearchid by step of 1
# if $keysearchid=1: for i in 1 # if $keysearchid=1: for i in 1
# if $keysearchid=2: for i in 1 2 # if $keysearchid=2: for i in 1 2
@ -49,15 +59,29 @@ case $keysearchid in
parted /dev/$k mkpart -a optimal primary fat32 0% 100% parted /dev/$k mkpart -a optimal primary fat32 0% 100%
mkdosfs -F 32 -I -n $keylabel /dev/${k}1 mkdosfs -F 32 -I -n $keylabel /dev/${k}1
# fatlabel /dev/${k}1 $keylabel # Cette commande est remplacée par loption -n de la commande précédente # fatlabel /dev/${k}1 $keylabel # Cette commande est remplacée par loption -n de la commande précédente
mkdir /mnt/usbkey$k mkdir "${mountpath}"$k
mount /dev/${k}1 /mnt/usbkey$k mount /dev/${k}1 "${mountpath}"$k
cp -r $wherethefilesare/* /mnt/usbkey$k/ cp -r $wherethefilesare/* "${mountpath}"$k/
sync sync
umount /mnt/usbkey$k # Generate the md5sum for the mountpoint
rmdir /mnt/usbkey$k pushd "${mountpath}""${k}"
find . -type f -exec md5sum {} \; | sort > "${destmd5}"
popd
# Umount the key
umount "${mountpath}"$k
rmdir "${mountpath}"$k
# Compare the md5sum
diff -q "${sourcemd5}" "${destmd5}"
if [[ $? -gt 0 ]]; then
printf "%40s\n" "${red}Error: MD5 diff detected.${normal}";
exit 1
else
printf "%40s\n" "${green}MD5 check OK for ${k}.${normal}"
fi
done done
printf "%40s\n" "${green}DONE${normal}" printf "%40s\n" "${green}DONE${normal}"
fi ;; fi ;;
*) printf "%40s\n" "${red}Alert: Error 2${normal}" ;; *) printf "%40s\n" "${red}Alert: Error 2${normal}" ;;
esac esac
exit 0