Bash Script To Check md5sum
Below script can be used as a bash script check md5sum. Useful when you have a large number of files to check on daily basis.
#!/bin/bash #Checks files integrity via md5sum utility. #For removal of all *.md5 files, execute: find `pwd` -name "*.md5" -exec rm {} \; #Usage: # checksum.sh "/path/to/directory" #script checksum.log rm -rf `pwd`/checksum/ rm -rf `pwd`/checksum.tar.gz mkdir `pwd`/checksum/ echo "$1"; find $1 -name "*.md5" -exec rm {} \; DATE=`date +%Y.%m.%d_%H.%M.%S.%N` LOG=`pwd`/checksum/`basename $0`-$DATE.log touch $LOG if test ! -w "$LOG"; then LOG=/dev/stdout fi SHIFT=$[`tput cols`-10] MOVE="\\033["$SHIFT"G" DEFAULT="\\033[0;39m" RED="\\033[1;31m" GREEN="\\033[1;32m" YELLOW="\\033[1;33m" BLUE="\\033[1;34m" logError_end() { echo -e "$MOVE$RED$1$DEFAULT" echo -e \\t$1 >>$LOG } logOk_end() { echo -e "$MOVE$GREEN$1$DEFAULT" echo -e \\t$1 >>$LOG } logWarning_end() { echo -e "$MOVE$YELLOW$1$DEFAULT" echo -e \\t$1 >>$LOG } checkSum() { #$1=file echo -en CheckSum:\\t$1 echo -en CheckSum:\\t$1 >>$LOG file=`basename $1` dir=`dirname $1` (cd $dir && md5sum -c -- $file >/dev/null 2>&1 && logOk_end OK || logError_end ERROR) } calcSum() { #$1=file echo -en CalcSum:\\t$1 echo -en CalcSum:\\t$1 >>$LOG file=`basename $1` dir=`dirname $1` (cd $dir && md5sum -b -- $file >$file.md5 2>/dev/null && logWarning_end CALCULATED || logError_end ERROR) } fin_process() { while read; do #echo $REPLY if test -n "`echo $REPLY | grep '\.md5$'`"; then checkSum $REPLY else if test ! -f "$REPLY.md5"; then calcSum $REPLY fi fi done } find $1 -type f | fin_process; echo echo -e "\\033[1;31m" cat $LOG |grep ERROR echo -e "\\033[0;39m" echo "Log file locations are:" echo $LOG ##cp -rf "root/`basename $0`-$DATE.log" `pwd` echo "collecting *.md5 files ..." find $1 -name "*.md5" -exec mv -f {} `pwd`/checksum/ \; echo "Please wait whiile making a tar file....." tar cvf checksum.tar `pwd`/checksum/ echo zipping checksum.tar gzip checksum.tar rm -rf `pwd`/checksum/ exit;
In case of any ©Copyright or missing credits issue please check CopyRights page for faster resolutions.