检查tar版本的shell脚步checktar.sh

来源:互联网 发布:淘宝定制包 编辑:程序博客网 时间:2024/06/05 03:00
#检查tar包
#tarpath=/bauser/sul/current/cc
tarpath=$HOME


:<<!
如果有2个参数,第一个参数为日期,比如20161025,第二个参数为tar包序号;
如果有1个参数,日期默认为当日,从系统获得,第一个参数为tar包的序号;
如果有0个参数,日期默认为当日,从系统获得,tar包序号默认为1
!


if [ $# -ge 3 ]
then
echo "输入参数不正确,只允许输入两个以内!"
exit 1
fi


if [ $# -eq 2 ]
then
date1=$1
num=$2
elif [ $# -eq 1 ]
then
date1=`date +%Y%m%d`
num=$1
else
date1=`date +%Y%m%d`
num=1
fi


echo "date1="$date1" num="$num"  tarfile=\c"


tarfile=`echo $tarpath"/"$date1"inbu0"$num".tar"`
echo $tarfile"\c"


if [ "`ls $tarfile 2>/dev/null`" = "" ]
then
echo "不存在"
exit 1
else
echo ""
fi


echo "~~~~~~~~~~~~~~~~~~~~进行检查tar包~~~~~~~~~~~~~~~~~~~~~~"


mkdir tarTmp
cat versionlist.txt | while read line
do
v1=`echo $line | awk '{if($1~/^r/){print $1}else{print "r"$1}}'`
echo $v1"\c"
v2=`echo $line | awk '{print $2}'`
echo "\t"$v2"\t\tchecking..\c"


if [ "`tar tvf $tarfile | grep $v2`" = "" ]
then
echo "........不存在在tar包中,请检查tar包"
break
else
echo "..\c"
fi


if [ "`svn st $v2`" = "" ]
then
svn up -$v1 $v2 >/dev/null 2>&1

echo "..\c"

cd tarTmp
tar xvf $tarfile $v2 >/dev/null 2>&1

echo "..\c"

if [ "`diff $HOME/$v2 $HOME/tarTmp/$v2`" = "" ]
then
echo "..OK!"
else
diff $HOME/$v2 $HOME/tarTmp/$v2 | sed "s/^\>/\+/g" | sed "s/^\</\-/g" >> diff.txt
echo "..FAIL!"
fi
cd
else
echo $v2"....存在未提交版本,请检查!"
fi
done


echo "~~~~~~~~~~~~~~~~~~~~检查完毕~~~~~~~~~~~~~~~~~~~~~~~~~~~"
rm -r tarTmp
0 0
原创粉丝点击