shell使用-三大剑客处理log

 
#!/bin/bash
echo "========统计api接口耗时========="
#输出请求的是哪个接口
awk 'NR==1' apitest.log| awk -F' *' '{print "请求的接口=" $6}'
#输入超过xxms去统计
#echo -n "请输入超过xx(ms)数值去统计: "
#read ms
#统计有效的log行数
grep -w 'execTime' -n /home/qa/demaria/apitest.log| awk -F : '{print "有效log行数=", $1}' | tail -n1
#计算接口平均耗时
awk '/execTime/' apitest.log | awk -F' *' '{print $NF}' | cut -d '[' -f2|cut -d ']' -f1 | awk '{ sum += $1 ; average = sum/NR} END { printf "接口平均耗时(ms)=%.2f\n", average}'
#计算最大响应时间
awk '/execTime/' apitest.log | awk -F' *' '{print $NF}' | cut -d '[' -f2|cut -d ']' -f1 | awk 'BEGIN {max = 0} {if ($1+0>max+0) max=$1 fi} END {print "接口最长响应时间(ms)=", max}'
#计算最短响应时间
awk '/execTime/' apitest.log | awk -F' *' '{print $NF}' | cut -d '[' -f2|cut -d ']' -f1 | awk 'BEGIN {min = 1999999} {if ($1+0<min+0) min=$1 fi} END {print "接口最短响应时间(ms)=", min}'
#计算超过xxms的占比
num1=$(awk '/execTime/' apitest.log | awk -F' *' '{print $NF}' | cut -d '[' -f2|cut -d ']' -f1 |awk -F: '{if($1>=200) sum=sum+1 } END{print sum}')
echo 超过200ms的行数=$num1
num2=$(grep -w 'execTime' -n /home/qa/demaria/apitest.log| awk -F : '{print $1}' | tail -n1 )
#echo 总行数$num2
percent=$(awk 'BEGIN{printf "%.2f%\n",'$num1'/'$num2'*100}' )
echo 超过200ms接口占比=$percent
exit
posted @ 2023-03-13 17:33  Rain009  阅读(37)  评论(0)    收藏  举报