当前位置: 首页 > 编程笔记 >

Shell脚本实现apache日志中的状态码分析

白祺然
2023-03-14
本文向大家介绍Shell脚本实现apache日志中的状态码分析,包括了Shell脚本实现apache日志中的状态码分析的使用技巧和注意事项,需要的朋友参考一下

一、首先将apache日志按天切割


       vi /etc/httpd/conf/httpd.conf

        ErrorLog "|rotatelogs /var/log/httpd/%Y%m%derror_log 86400 480"

       CustomLog "|rotatelogs /var/log/httpd/%Y%m%daccess_log 86400 480" combined

二、重启apache服务


       service httpd restart


##################apahce日志服务器按天切割完毕######################

三、分析生成的apache日志状态码(等待了一天的日志)


       ***日志文件为20111228access_log

       vi http.sh 

       #!/bin/bash

       total=`cat 20111228access_log|wc -l`

      array=(`cat 20111228access_log |awk '{print $9}'|sort|uniq -c|sort -n`)

      len=${#array[@]}

      echo "####################http状态码统计###########################"

      echo "总的连接数:$total"

             for ((i=0;i<$len;i=i+2))

                {

                   echo "########################################################"

                           echo ${array[$i]}:${array[$i+1]}

                   echo "########################################################"

                            echo ${array[$i+1]}占连接数的比例是:`awk 'BEGIN{printf "%.6f%\n",('${array[$i]}'/'${total}'*100)}'`

                 }

执行脚本结果(以百分号表示):


sh http.sh 

####################http状态码统计###########################

总的连接数:688965

########################################################

1:303

########################################################

303占连接数的比例是:0.000145%

########################################################

1:416

########################################################

416占连接数的比例是:0.000145%

########################################################

2:299

########################################################

299占连接数的比例是:0.000290%

########################################################

8:501

########################################################

501占连接数的比例是:0.001161%

########################################################

145:403

########################################################

403占连接数的比例是:0.021046%

########################################################

197:400

########################################################

400占连接数的比例是:0.028594%

########################################################

738:206

########################################################

206占连接数的比例是:0.107117%

########################################################

7307:404

########################################################

404占连接数的比例是:1.060576%

########################################################

9213:302

########################################################

302占连接数的比例是:1.337223%

########################################################

30574:301

########################################################

301占连接数的比例是:4.437671%

########################################################

201197:304

########################################################

304占连接数的比例是:29.202790%

########################################################

439582:200

########################################################

200占连接数的比例是:63.803241%

########################简单讲解#########################

array=(`cat 20111228access_log |awk '{print $9}'|sort|uniq -c|sort -n`)

  ###这个拿出来是一个数组了

len=${#array[@]} 

 ###这个是数组的长度

echo ${array[$i]}:${array[$i+1]}

###这个是以for循环输入状态码和状态码的连接数

awk 'BEGIN{printf "%.6f%\n",('${array[$i]}'/'${total}'*100)}

###以百分比计算各个状态码大约占的连接数

 类似资料:
  • 本文向大家介绍Shell脚本实现分析apache日志中ip所在的地区,包括了Shell脚本实现分析apache日志中ip所在的地区的使用技巧和注意事项,需要的朋友参考一下 查询ip地址所用的组件 步骤和nginx是差不多的,只是取日志里面的ip地址的方法不一样~~~ 最后cat 查看~~

  • 本文向大家介绍shell脚本按当前日期输出日志的实现,包括了shell脚本按当前日期输出日志的实现的使用技巧和注意事项,需要的朋友参考一下 shell脚本基本技能是设置变量,输出信息。如下: sh脚本输出到控制台 将以上脚本保存到test.sh脚本文件中,并赋予可执行权限:sudo chmod +x test.sh 执行脚本:bash test.sh 控制台输出: 输出到控制台,并且写入日志文件:

  • 本文向大家介绍Shell脚本实现监控iptables运行状态,包括了Shell脚本实现监控iptables运行状态的使用技巧和注意事项,需要的朋友参考一下 最近在调试服务器的iptables,自己做了个定时关iptables,但晚上回家很少开电脑,所以就没法去启动iptables,当然你可能会说,为什么不取消定时关闭iptables,我只能说个人的环境不一样,需求也就不一样. 脚本内容: vi i

  • 本文向大家介绍Shell+Linux命令实现日志分析,包括了Shell+Linux命令实现日志分析的使用技巧和注意事项,需要的朋友参考一下 一、列出当天访问次数最多的IP 命令: 原理:        最后打印的结果大概是这样: 以下是其他一些分析日志的shell用法: 1、查看当天有多少个IP访问: 2、查看某一个页面被访问的次数; 3、查看每一个IP访问了多少个页面: 4、将每个IP访问的页面

  • 本文向大家介绍Shell脚本实现监视指定进程的运行状态,包括了Shell脚本实现监视指定进程的运行状态的使用技巧和注意事项,需要的朋友参考一下 在之前的博客中,曾经写了自动化测试程序的实现方法,现在开发者需要知道被测试的进程(在此指运行在LINUX上的主进程的)在异常退出之前的进程的运行状态,例如内存的使用率、CPU的使用率等。 现用shell脚本实现指定进程的运行状态。直接上代码。 样实现了每1

  • 本文向大家介绍Shell实现的Oracle启动脚本分享,包括了Shell实现的Oracle启动脚本分享的使用技巧和注意事项,需要的朋友参考一下 Usage: sh oracled [start|stop|restart] SIDs 其中SIDs是数据库名,多个名称之间用逗号分隔。缺省的操作是 restart ,也可以指定需要进行的操作( start | stop | restart )