shell:统计web服务器每天客户访问量及每个时段的访问量-阿里云开发者社区

开发者社区> 科技探索者> 正文

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

简介:
+关注继续查看

统计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

本文转自激情燃烧的岁月博客51CTO博客,原文链接http://blog.51cto.com/liuzhengwei521/1736166如需转载请自行联系原作者


weilovepan520

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
1.3w字,一文详解死锁!(6)
1.3w字,一文详解死锁!(6)
6 0
Spring Boot Admin,贼好使!(8)
Spring Boot Admin,贼好使!(8)
22 0
MySql5.7数据优化,瞬间飞起
MySql5.7数据优化,瞬间飞起
5 0
死锁的 4 种排查工具 !(6)
死锁的 4 种排查工具 !(6)
8 0
Spring Boot Admin,贼好使!(5)
Spring Boot Admin,贼好使!(5)
31 0
死锁的 4 种排查工具 !(3)
死锁的 4 种排查工具 !(3)
5 0
MQTT知识大全【科普贴】
MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于客户端与服务器之间发布/订阅(publish/subscribe)模式的"轻量级"通讯协议。为了保证通讯的安全性和可靠性,该协议基于TCP/IP协议构建。由IBM在1999年发布,最初被用于石油管道传感器与卫星的通讯连接,2014年,它正式成为一个OASIS开放标准并得到了大量开源语言的支持。
9 0
Spring Boot Admin,贼好使!(3)
Spring Boot Admin,贼好使!(3)
26 0
Spring Boot Admin,贼好使!(4)
Spring Boot Admin,贼好使!(4)
25 0
1.3w字,一文详解死锁!(4)
1.3w字,一文详解死锁!(4)
4 0
5489
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载