当前位置:编程学习 > 网站相关 >>

awk分析话单列子 tcp连接失败率,及失败连接的topN

# 计算话单中,tcp连接失败率,及失败连接的topN
# 第29字段为6时的话单为tcp连接
# 第85字段为1时表示连接失败
# 第28字段表示目的ip,即服务器的ip, 按目的ip计算topN
# $0表示整行, FS表示字段分割符, NF表示当前记录中的字段数量,NR表示表示当前记录的编号,awk将第一个记录算作记录号


awk -F '\t' '{
    if ($29!=6)
    {
        next;
    }
    dip = $28; DIP[dip]++;
    if($85==1){DIP_F[dip]++}
}END{
    for (dip in DIP)
    {
        fail=0;
        tot=DIP[dip]; fail+=DIP_F[dip];
        print fail/tot, fail, tot, dip
    }
}' userflow_20130410_153822_010005.log | sort -nr | more | awk '{
   F+=$2;T+=$3;
   if($1>0.03)
   {
       a++;A+=$2;
   } else {
       b++;}
   B+=$2
} END {print a, b, a/b, A, B, A/B, F, T, F/T}'


awk -F '\t' '{
    if ($29!=6)
    {
        next;
    }
    dip = $28; DIP[dip]++;
    if($85==1){DIP_F[dip]++}
}END{
    for (dip in DIP)
    {
        fail=0;
        tot=DIP[dip]; fail+=DIP_F[dip];
        print fail, tot, fail/tot, dip
    }
}' userflow_20130410_15*_010005.log | sort -nr | more | awk '{
   F+=$1;T+=$2;
   if($1>5)
   {
       a++;A+=$1
   } else {
       b++;B+=$1
   }
} END {print a, b, A/(A+B), A, B, F, T, F/T}'


awk -F '\t' '{
    sumline+=1;
    if (6==$29)
        tcpconn+=1;
    tcpfailconn+=$85
    }END{
    print sumline;print tcpconn;print tcpfailconn;print tcpfailconn/tcpconn; print tcpfailconn/sumline
    }' userflow_20130410_153822_010005.log


 

补充:综合编程 , 其他综合 ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,