awk实时统计PV

今天有人问我怎么实时统计一下访问量的大小。其实在公司是有专门的监控系统做这些基本的访问量,服务调用,业务数据的完整分析。
不过就简单根据apache或者nginx的日志来看看PV的话,可以直接tail日志给awk处理。


#pv.f
#假设第4列的格式是:[31/May/2013:13:46:31 +0800]
#第6列是GET 或者POST 表示访问的方式
function pt(a)
    {
        for (i in a)
        {
            printf("%s -- %d\n",i,a[i]);
        }
    }
{
    t=substr($4,9,13);  #per second
    if ( per == 1) {
        t=substr($4,9,10); #per minute
    }
    if( k != t  ) {
        if( length(k)>2) {
            pt(af);
         }
         delete af;
         k=t;
    } else if( k == t) {
        FLAG=t;
        if ($6 ~ "GET" || $6 ~ "POST" ) {
            af[FLAG]++;
        }
    }
}

pv530

此条目发表在linux shell分类目录。将固定链接加入收藏夹。

发表回复