• 常用统计命令


    1.排序并统计相同ip访问次数

    # cat access.log |awk '{print $1}'|grep -v "^$"|sort|uniq -c

    # awk '{S[$1]++} END{for (i in S) print S[i],i}' access.log

    2.统计各种连接状态的数量

    # netstat -n | awk '/^tcp/ {++S[$NF]} END{for(a in S) print a, S[a]}'

    $NF:表示一行的最后一列;S[$NF]:表示数组元素的值;++S[$NF]:表示对某个数加一

    3.统计总访问量

    # cat access.log |awk '{print $1}'|sort|uniq -c|awk 'BEGIN{sum=0} {sum+=$1} END{print "PV is",sum}'

    4.统计输出格式:[访问次数*单个文件大小]  [访问次数]  [访问的文件]

    # awk '{array_num[$7]++;array_size[$7]=array_size[$7]+$10}END{for(i in array_num) print array_size[i],array_num[i],i}' access_2010-12-8.log |sort -rn|head

    # awk '{array_num[$7]++;array_size[$7]=array_size[$7]+$10}END{for(i in array_num) print "PV:"array_size[i]," ""Count:"array_num[i]," ""File:"i}' access.log |sort -rn|head

    # awk '{print $7,$10}' s-access.log |sort|uniq -c|sort -r|awk '{print "PV:"$1*$3," ""Count:"$1," ""File:"$2}'|sort -rn|head

    5.统计/etc/passwd 中各种类型shell的数量

    # awk -F: '{shells[$NF]++} END{ for(i in shells){print i,shells[i]} }' /etc/passwd

    6.网站访问状态统计 <当前状态 netstat>

    # netstat -ant |grep :80 |awk '{access_stat[$NF]++} END{for(i in access_stat ){print i,access_stat[i]}}'

    or   

    # netstat -ant |grep :80 |awk '{access_stat[$NF]++} END{for(i in access_stat ){print i,access_stat[i]}}' |sort -k2 -n |head

    7.统计当前访问的每个IP的数量 <当前状态 netstat>

    #netstat -ant |grep :80 |awk -F: '{ip_count[$8]++} END{for(i in ip_count){print i,ip_count[i]} }' |sort

    8.统计Apache/Nginx日志中某一天的PV量 <统计日志>

    #grep '07/Aug/2012' access.log |wc -l

    9.统计Apache/Nginx日志中某一天不同IP的访问量<统计日志>

    #grep '07/Aug/2012' access.log |awk '{ips[$1]++} END{for(i in ips){print i,ips[i]} }' |sort -k2 -rn |head

    or     

    # grep '07/Aug/2012' access.log |awk '{ips[$1]++} END{for(i in ips){print i,ips[i]} }' |awk '$2>100' |sort -k2 -rn

    10.统计用户名为4个字符的用户

    # awk -F: '$1~/^....$/{count++; print $1} END{print "count is: " count}' /etc/passwd

    or      

    # awk -F: 'length($1)==4{count++; print $1} END{print "count is: "count}' /etc/passwd

    11.删除配置文件中#号注释行

    # sed -r -i '/^#/d' file.conf 

    12.删除无内容空行

    # sed -r '/^$/d' file.conf 

  • 相关阅读:
    MongoDB 学习笔记(七):主从复制与副本集
    MongoDB 学习笔记(六):备份与用户管理
    MongoDB 学习笔记(五):固定集合、GridFS文件系统与服务器端脚本
    MongoDB 学习笔记(四):索引
    MongoDB 学习笔记(三):分页、排序与游标
    MongoDB 学习笔记(一):安装及简单shell操作
    MongoDB 学习笔记(二):shell中执行增删查改
    mongoDB 入门指南、示例
    mongoDB 介绍(特点、优点、原理)
    企业级任务调度框架Quartz(7) 线程在Quartz里的意义(1)
  • 原文地址:https://www.cnblogs.com/kazihuo/p/7825949.html
Copyright © 2020-2023  润新知