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

相关文章
|
5月前
|
中间件 Java 应用服务中间件
Windows部署web应用服务器Jboss中间件
如何在Windows系统上部署JBoss 7.1作为Web应用服务器,包括配置环境变量、自动部署WAR包、访问JBoss控制台、设置管理员账户以及修改端口和绑定地址等操作。
161 1
|
4月前
|
Unix Shell Linux
LeetCode刷题 Shell编程四则 | 194. 转置文件 192. 统计词频 193. 有效电话号码 195. 第十行
本文提供了几个Linux shell脚本编程问题的解决方案,包括转置文件内容、统计词频、验证有效电话号码和提取文件的第十行,每个问题都给出了至少一种实现方法。
LeetCode刷题 Shell编程四则 | 194. 转置文件 192. 统计词频 193. 有效电话号码 195. 第十行
|
5月前
|
缓存 NoSQL 数据库
高性能Web服务器架构设计
【8月更文第28天】在当今互联网时代,网站的响应速度直接影响用户体验和业务成功率。因此,构建一个高性能的Web服务器架构至关重要。本文将从硬件配置、软件架构以及网络设置三个方面探讨如何提高Web服务器的性能,并提供一些实际的代码示例。
319 0
|
2月前
|
XML 前端开发 JavaScript
PHP与Ajax在Web开发中的交互技术。PHP作为服务器端脚本语言,处理数据和业务逻辑
本文深入探讨了PHP与Ajax在Web开发中的交互技术。PHP作为服务器端脚本语言,处理数据和业务逻辑;Ajax则通过异步请求实现页面无刷新更新。文中详细介绍了两者的工作原理、数据传输格式选择、具体实现方法及实际应用案例,如实时数据更新、表单验证与提交、动态加载内容等。同时,针对跨域问题、数据安全与性能优化提出了建议。总结指出,PHP与Ajax的结合能显著提升Web应用的效率和用户体验。
60 3
|
3月前
|
分布式计算 Hadoop Shell
Hadoop-35 HBase 集群配置和启动 3节点云服务器 集群效果测试 Shell测试
Hadoop-35 HBase 集群配置和启动 3节点云服务器 集群效果测试 Shell测试
95 4
|
3月前
|
分布式计算 Hadoop Shell
Hadoop-36 HBase 3节点云服务器集群 HBase Shell 增删改查 全程多图详细 列族 row key value filter
Hadoop-36 HBase 3节点云服务器集群 HBase Shell 增删改查 全程多图详细 列族 row key value filter
69 3
|
3月前
|
Java PHP
PHP作为广受青睐的服务器端脚本语言,在Web开发中占据重要地位。理解其垃圾回收机制有助于开发高效稳定的PHP应用。
【10月更文挑战第1天】PHP作为广受青睐的服务器端脚本语言,在Web开发中占据重要地位。其垃圾回收机制包括引用计数与循环垃圾回收,对提升应用性能和稳定性至关重要。本文通过具体案例分析,详细探讨PHP垃圾回收机制的工作原理,特别是如何解决循环引用问题。在PHP 8中,垃圾回收机制得到进一步优化,提高了效率和准确性。理解这些机制有助于开发高效稳定的PHP应用。
57 3
|
5月前
|
JavaScript 搜索推荐 前端开发
从零搭建到部署:Angular与Angular Universal手把手教你实现服务器端渲染(SSR),全面解析及实战指南助你提升Web应用性能与SEO优化效果
【8月更文挑战第31天】服务器端渲染(SSR)是现代Web开发的关键技术,能显著提升SEO效果及首屏加载速度,改善用户体验。Angular Universal作为官方SSR解决方案,允许在服务器端生成静态HTML文件。本文通过具体示例详细介绍如何使用Angular Universal实现SSR,并分享最佳实践。首先需安装Node.js和npm。
124 1
|
5月前
|
API C# 开发框架
WPF与Web服务集成大揭秘:手把手教你调用RESTful API,客户端与服务器端优劣对比全解析!
【8月更文挑战第31天】在现代软件开发中,WPF 和 Web 服务各具特色。WPF 以其出色的界面展示能力受到欢迎,而 Web 服务则凭借跨平台和易维护性在互联网应用中占有一席之地。本文探讨了 WPF 如何通过 HttpClient 类调用 RESTful API,并展示了基于 ASP.NET Core 的 Web 服务如何实现同样的功能。通过对比分析,揭示了两者各自的优缺点:WPF 客户端直接处理数据,减轻服务器负担,但需处理网络异常;Web 服务则能利用服务器端功能如缓存和权限验证,但可能增加服务器负载。希望本文能帮助开发者根据具体需求选择合适的技术方案。
241 0
|
5月前
|
Rust 安全 开发者
惊爆!Xamarin 携手机器学习,开启智能应用新纪元,个性化体验与跨平台优势完美融合大揭秘!
【8月更文挑战第31天】随着互联网的发展,Web应用对性能和安全性要求不断提高。Rust凭借卓越的性能、内存安全及丰富生态,成为构建高性能Web服务器的理想选择。本文通过一个简单示例,展示如何使用Rust和Actix-web框架搭建基本Web服务器,从创建项目到运行服务器全程指导,帮助读者领略Rust在Web后端开发中的强大能力。通过实践,读者可以体验到Rust在性能和安全性方面的优势,以及其在Web开发领域的巨大潜力。
50 0