美文网首页
shell统计时间段访问量

shell统计时间段访问量

作者: linux_python | 来源:发表于2021-03-02 14:41 被阅读0次

统计web服务器每天客户访问量及每个时段的访问量

前提:在这之前我每天到公司习惯性的统计一下昨天的总访问量及每个时段的访问量,今天突然想起能不能脚本的方式实现我想要的功能呢,经过一上午的试验,终于测试成功,写了3种不同的方法,最后一种方法最简单

第一种方法(这种方法不灵活,太机械了)

read -p "请输入要查询的日志文件:" logFile

if [ -e $logFile ];then

    all=`cat $logFile | cut -d' ' -f1 | sort -n | uniq -c | sort -n | wc -l`

    echo "今天访问问的总人数为:$all"

    on0=`cat $logFile | grep "16/Jan/2016:00" | cut -d' ' -f1 | sort -n | uniq -c | sort -n |  wc -l`

    echo "今天0点访问的人数有:$on0"

    on1=`cat $logFile | grep "16/Jan/2016:01" | cut -d' ' -f1 | sort -n | uniq -c | sort -n |  wc -l`

    echo "今天1点访问的人数有:$on1"

    on2=`cat $logFile | grep "16/Jan/2016:02" | cut -d' ' -f1 | sort -n | uniq -c | sort -n |  wc -l`

    echo "今天2点访问的人数有:$on2"

    on3=`cat $logFile | grep "16/Jan/2016:03" | cut -d' ' -f1 | sort -n | uniq -c | sort -n |  wc -l`

    echo "今天3点访问的人数有:$on3"

    on4=`cat $logFile | grep "16/Jan/2016:04" | cut -d' ' -f1 | sort -n | uniq -c | sort -n |  wc -l`

    echo "今天4点访问的人数有:$on4"

    on5=`cat $logFile | grep "16/Jan/2016:05" | cut -d' ' -f1 | sort -n | uniq -c | sort -n |  wc -l`

    echo "今天5点访问的人数有:$on5"

    on6=`cat $logFile | grep "16/Jan/2016:06" | cut -d' ' -f1 | sort -n | uniq -c | sort -n |  wc -l`

    echo "今天6点访问的人数有:$on6"

    on7=`cat $logFile | grep "16/Jan/2016:07" | cut -d' ' -f1 | sort -n | uniq -c | sort -n |  wc -l`

    echo "今天7点访问的人数有:$on7"

    on8=`cat $logFile | grep "16/Jan/2016:08" | cut -d' ' -f1 | sort -n | uniq -c | sort -n |  wc -l`

    echo "今天8点访问的人数有:$on8"

    on9=`cat $logFile | grep "16/Jan/2016:09" | cut -d' ' -f1 | sort -n | uniq -c | sort -n |  wc -l`

    echo "今天9点访问的人数有:$on9"

    on10=`cat $logFile | grep "16/Jan/2016:10" | cut -d' ' -f1 | sort -n | uniq -c | sort -n |  wc -l`

    echo "今天10点访问的人数有:$on10"

    on11=`cat $logFile | grep "16/Jan/2016:11" | cut -d' ' -f1 | sort -n | uniq -c | sort -n |  wc -l`

    echo "今天11点访问的人数有:$on11"

    on12=`cat $logFile | grep "16/Jan/2016:12" | cut -d' ' -f1 | sort -n | uniq -c | sort -n |  wc -l`

    echo "今天12点访问的人数有:$on12"

    on13=`cat $logFile | grep "16/Jan/2016:13" | cut -d' ' -f1 | sort -n | uniq -c | sort -n |  wc -l`

    echo "今天13点访问的人数有:$on13"

    on14=`cat $logFile | grep "16/Jan/2016:14" | cut -d' ' -f1 | sort -n | uniq -c | sort -n |  wc -l`

    echo "今天14点访问的人数有:$on14"

    on15=`cat $logFile | grep "16/Jan/2016:15" | cut -d' ' -f1 | sort -n | uniq -c | sort -n |  wc -l`

    echo "今天15点访问的人数有:$on15"

    on16=`cat $logFile | grep "16/Jan/2016:16" | cut -d' ' -f1 | sort -n | uniq -c | sort -n |  wc -l`

    echo "今天16点访问的人数有:$on16"

    on17=`cat $logFile | grep "16/Jan/2016:17" | cut -d' ' -f1 | sort -n | uniq -c | sort -n |  wc -l`

    echo "今天17点访问的人数有:$on17"

    on18=`cat $logFile | grep "16/Jan/2016:18" | cut -d' ' -f1 | sort -n | uniq -c | sort -n |  wc -l`

    echo "今天18点访问的人数有:$on18"

    on19=`cat $logFile | grep "16/Jan/2016:19" | cut -d' ' -f1 | sort -n | uniq -c | sort -n |  wc -l`

    echo "今天19点访问的人数有:$on19"

    on20=`cat $logFile | grep "16/Jan/2016:20" | cut -d' ' -f1 | sort -n | uniq -c | sort -n |  wc -l`

    echo "今天20点访问的人数有:$on20"

    on21=`cat $logFile | grep "16/Jan/2016:21" | cut -d' ' -f1 | sort -n | uniq -c | sort -n |  wc -l`

    echo "今天21点访问的人数有:$on21"

    on22=`cat $logFile | grep "16/Jan/2016:22" | cut -d' ' -f1 | sort -n | uniq -c | sort -n |  wc -l`

    echo "今天22点访问的人数有:$on22"

    on23=`cat $logFile | grep "16/Jan/2016:23" | cut -d' ' -f1 | sort -n | uniq -c | sort -n |  wc -l`

    echo "今天23点访问的人数有:$on23"

fi

第二种方法(通过for循环的方式)

!/bin/bash

read -p "请输入要查询的日志文件:" logFile

if [ -e $logFile ];then

    all=`cat $logFile | cut -d' ' -f1 | sort -n | uniq -c | sort -n | wc -l`

    echo "今天访问的总人数为:$all人"

    for i in $(seq 0 23);do

            if [ $i -le 9 ];then

                    on0=`cat $logFile | grep "16/Jan/2016:0$i" | cut -d' ' -f1 | sort -n | uniq -c | sort -n |  wc -l`

                    echo "今天$i点访问的人数有:$on0人"

            else

                    on0=`cat $logFile | grep "16/Jan/2016:$i" | cut -d' ' -f1 | sort -n | uniq -c | sort -n |  wc -l`

                    echo "今天$i点访问的人数有:$on0人"

            fi

    done

else

    echo "你输入的文件不存在,请重新输入!"

fi

第三种方法(通过写方法的方式来实现,用的时候直接调用)

!/bin/bash

function fileName() {

    all=`cat $logFile | cut -d' ' -f1 | sort -n | uniq -c | sort -n | wc -l`

    echo "今天访问的总人数为:$all人"

    for i in $(seq 0 23);do

            if [ $i -le 9 ];then

                    on0=`cat $logFile | grep "16/Jan/2016:0$i" | cut -d' ' -f1 | sort -n | uniq -c | sort -n |  wc -l`

                    echo "今天$i点访问的人数有:$on0人"

            else

                    on0=`cat $logFile | grep "16/Jan/2016:$i" | cut -d' ' -f1 | sort -n | uniq -c | sort -n |  wc -l`

                    echo "今天$i点访问的人数有:$on0人"

            fi

    done

}

read -p "请输入要查询的日志文件:" logFile

if [ -e $logFile ];then

    fileName

else

    echo "你输入的文件不存在,请重新输入!"

fi

wKiom1acjTOAHYJrAABna9h_Ee4012.png image

转自https://blog.csdn.net/Richardlygo/article/details/83095965

相关文章

  • shell统计时间段访问量

    统计web服务器每天客户访问量及每个时段的访问量 前提:在这之前我每天到公司习惯性的统计一下昨天的总访问量及每个时...

  • Shell统计访问量

    昨天做了一个shell脚本,功能是统计车辆浏览日志文件中,单个车辆每月的浏览量。shell脚本以前也写过不少,间隔...

  • Nginx Access Log日志统计分析常用命令

    IP相关统计统计IP访问量 查看某一时间段的IP访问量(4-5点) 查看访问最频繁的前100个IP 页面访问统计查...

  • Nginx Log日志统计分析常用命令

    IP相关统计 统计IP访问量(独立ip访问数量) 查看某一时间段的IP访问量(4-5点) 查看访问最频繁的前100...

  • Nginx Log日志统计分析常用命令

    IP相关统计 统计IP访问量(独立ip访问数量) 查看某一时间段的IP访问量(4-5点) 查看访问最频繁的前100...

  • Nginx日志常用统计分析命令

    IP相关统计 统计IP访问量(独立ip访问数量) 查看某一时间段的IP访问量(4-5点) 查看访问最频繁的前100...

  • awk日志统计

    Nginx Access Log日志统计分析常用命令 IP相关统计 1、统计IP访问量 2、查看某一时间段的IP访...

  • Nginx Log日志统计分析常用命令

    (网上抄的,留个记录) 统计IP访问量(独立ip访问数量) 查看某一时间段的IP访问量(4-5点) 查看访问最频繁...

  • 20171203题目列表

    Linux • shell统计日志中单接口访问量 mysql • Mysql是不支持嵌套事务的,开启了一个事务的情...

  • 使用Elasticsearch实现统计(golang)

    问题 需求是统计平台内包括用户, 订单, 网站访问量等某时间段的各种数据, 第一想法是使用更熟悉的Mysql做数据...

网友评论

      本文标题:shell统计时间段访问量

      本文链接:https://www.haomeiwen.com/subject/vctxqltx.html