iscsi挂载文件一致性脚本

版权声明:此博文为博主原创,未经允许不得私自转载! 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

猜你喜欢

转载自blog.csdn.net/pansaky/article/details/88816134