注意脚本思路,遇到类似的计算都是一个套路
编写一个脚本,统计某天的卡顿比数据。
日志格式说明:倒数第二列为卡顿用户数,倒数第四列为总用户数,卡顿比为卡顿用户总数/总用户总数* 100%
Eg:
2016-12-03 00:20:00,重庆,电信,ottvideoyd.hifuntv.com,ottvideoyd.hifuntv.com,7,0,imgotv-ott-4.16.106,3,3,0,8,0,1,0
vim daan.sh
#!/bin/bash
if [ "$1" != "20161208.csv" ];then
echo "Usage: ./danan.sh20161208.csv"
exit 2
fi
while read line
do
hms=`echo $line|awk '{print $2}'|awk -F ',' '{print $1}'`
total=`echo $line |awk -F ',' '{print $12 }'`
ka=`echo $line |awk -F ',' '{print $14 }'`
stamtime=`date -d $hms +%s`
stamtime=`expr $stamtime - $stamtime \% 300`
HMS=`date -d @"$stamtime" +%H:%M:%S`
echo "$HMS $total $ka" >>ka.txt
done < $1
aatimes=`cat ka.txt|awk '{print $1}'|sort|uniq`
for aatime in $aatimes
do
size=`cat ka.txt| grep "$aatime"|awk '{total+=$2; ka+=$3}END{printf "%.2f", ka/total*100}'`
echo "$aatime $size%"
done
:wq
脚本运行结果