自动化用例设置在凌晨3点跑的,很多日志被冲掉,没有办法定位问题,写了个脚本用于保存。
debug目录大概17秒左右就会产生一个日志文件,debug目录最多保存50个debug文件。
大概的思路,先把当前的目录的文件名保存到origin.txt里,每隔10秒判断最新产生的文件在不在origin.txt里
如果不在,则是新产生的文件。去搜索新产生的文件里的ERROR的行号,把行号放到temp.txt文件里,
在用循环去打印行号的内容,取这个行号下面30行内的内容打印到now.txt里
#! /bin/bash
for (( i=0;i<=1000000;i++ ))
do
sleep 10
a=`ls -a | grep "iiiii_order4004_SO_debug_2*" | tail -n +50`
grep $a origin.txt
let b=$?
if [ $b == 1 ]
then
grep -n "ERROR" $a | awk -F ":" '{print $1}' >> temp.txt
num=`wc -l temp.txt |awk '{print $1}'`
echo $num
for (( n=1;n<=$num;n++ ))
do
hang=`sed -n "$n"p temp.txt`
cat $a | til -n +$hang |head -n 30 >> now.txt
done
echo $a >> origin.txt
rm temp.txt
fi
done