版权声明:此博文为博主原创,未经允许不得私自转载! https://blog.csdn.net/pansaky/article/details/88816134
最近一直在测试存储,经常涉及到iscsi数据一致性校验,在可靠性测试时候要对比文件一致性,所以写个脚本方便对比校验文件一致性,
#! /bin/bash
######################################################
# verify file md5
# updated as 2019/3/26 pansaky
#
######################################################
create_md5()
{
if [ -z $1 ];then
echo "usage: ./verify.sh 1000 /mnt/path create to create 100 file"
echo "usage: ./verify.sh all /mnt/path verify to verify all file"
exit 1
fi
log="`pwd`/log"
echo "data from ===`date "+%Y-%m-%d %H:%M:%S"`===" > $log
#awk 'BEGIN{srand();print rand()*1000000}'
cd $2
if [ $? == "0" ];then
for i in `seq $1`
do
ran=`echo "$RANDOM"|md5sum|cut -c 1-20`
touch $ran
# echo "touch $ran"
echo $ran > $ran
md5v=`md5sum $ran`
echo -e "$random $md5v" >> $log
done
exit 0
else
echo "cd $2 failed!"
fi
}
verify_file()
{
log="`pwd`/verlog"
echo "data from ===`date "+%Y-%m-%d %H:%M:%S"`===" > $log
cd $2
for i in `ls -l $2 | awk '{print $9}'`
do
md5ver=` md5sum $i`
echo -e "$md5ver" >> $log
done
sleep 1
cd /mnt/verify
sort -o log log
sort -o verlog verlog
echo "verify diff result is: `diff -w log verlog`"
exit 0
}
main()
{
echo $@
case $3 in
"create")
create_md5 $1 $2
;;
"verify")
verify_file $1 $2
;;
*)
echo "Wrong args for script! "
echo "usage: ./verify.sh 1000 /mnt/path create to create 100 file"
echo "usage: ./verify.sh all /mnt/path verify to verify all file"
exit 1 ;;
esac
}
main $1 $2 $3