奇淫巧技总结之统计篇

/ 奇淫巧技 / 没有评论 / 1351浏览

关于web日志访问

根据访问IP统计UV

awk '{print $1}'  access.log|sort | uniq -c |wc -l

统计访问URL统计PV

awk '{print $7}' access.log|wc -l

查询访问最频繁的URL

awk '{print $7}' access.log|sort | uniq -c |sort -n -k 1 -r|more

查询访问最频繁的IP

awk '{print $1}' access.log|sort | uniq -c |sort -n -k 1 -r|more

根据时间段统计查看日志

sed -n access.log '/14\/Mar\/2015:21/,/14\/Mar\/2015:22/p'|more

状态码个数统计

awk '{print $9}'  file |sort |grep 状态码 |wc -l

关于计数

wc

wc -l 
wc -w 
#统计指定文件中的字数 并将统计结果显示输出
#适用场景你们想下,比如写主从监控脚本,输出内容要有几个yes才算达标?

grep

grep -c   
#只输出匹配行的计数
#我测试了下,grep -c 对于大文件比awk+wc -l组合统计出结果的速度较快,后者因为是两个命令吗,可能要计算两次,小可爱们可以试一下
[root@10-254-182-240 ~]# egrep -c "\##" 9999999.txt
30

统计字符串的个数

awk  '{s+=gsub(/字符串/,"&")}END{print s}' file

awk -v RS="@#$j" '{print gsub(/字符串/,"&")}' file

grep -o '字符串' file |wc -l

网络情况

一览?

    netstat -n |grep ^tcp |awk '{print $6}' |sort |uniq  -c| sort -n -k 1 -r
      580 ESTABLISHED
         62 TIME_WAIT
         38 FIN_WAIT2
         16 FIN_WAIT1
          4 LAST_ACK
          3 CLOSE_WAIT

当前并发数?

root@front:~# netstat -n |grep ^tcp |awk '{print $6}' |sort |uniq  -c| sort -n -k 1 -r |grep ESTAB |awk '{print $1}'
    599

一些解释

ESTABLISHED //正常数据传输状态/当前并发连接数

FIN_WAIT2 //另一边已同意释放

ITMED_WAIT //等待所有分组死掉

CLOSING //两边同时尝试关闭

TIME_WAIT //另一边已初始化一个释放

LAST_ACK //等待所有分组死掉