#!/bin/bash
#功能描述(Description):Nginx标准日志分析脚本.
#统计信息包括:
#1.页面访问量PV
#2.用户量UV
#3.人均访问量
#4.每个IP的访问次数
#5.HTTP状态码统计
#6.累计页面字节流量
#7.热点数据GREEN_COL='\033[32m'
NONE_COL='\033[0m'
line='echo ++++++++++++++++++++++++++++++++++'read -p "请输入日志文件:" logfile
echo#统计页面访问量(PV).
PV=$(cat $logfile | wc -l)#统计用户数量(UV).
UV=$(cut -f1 -d' ' $logfile | sort | uniq | wc -l)#统计人均访问次量.
Average_PV=$(echo "scale=2;$PV/$UV" | bc)#统计每个IP的访问次数.
declare -A IP
while read ip other
dolet IP[$ip]+=1
done < $logfile#统计各种HTTP状态码的个数,如404报错的次数,500错误的次数等.
declare -A STATUS
while read ip dash user time zone method file protocol code size other
dolet STATUS[$code]++
done < $logfile#统计累计网页字节大小.
while read ip dash user time zone method file protocol code size other
dolet Body_size+=$size
done < $logfile#统计热点数据
declare -A URI
while read ip dash user time zone method file protocol code size other
dolet URI[$file]++
done < $logfileecho -e "\033[91m\t日志分析数据报表\033[0m"#显示PV与UV访问量,平均用户访问量.
$line
echo -e "累计PV量: $GREEN_COL$PV$NONE_COL"
echo -e "累计UV量: $GREEN_COL$UV$NONE_COL"
echo -e "平均用户访问量: $GREEN_COL$Average_PV$NONE_COL"#显示累计网页字节数.
$line
echo -e "累计访问字节数: $GREEN_COL$Body_size$NONE_COL Byte"#显示指定的HTTP状态码数量.
$line
for i in 200 404 500
doif [ ${STATUS[$i]} ];thenecho -e "$i状态码次数:$GREEN_COL ${STATUS[$i]} $NONE_COL"elseecho -e "$i状态码次数:$GREEN_COL 0 $NONE_COL"fi
done#显示每个IP的访问次数.
$line
for i in ${!IP[@]}
doprintf "%-15s的访问次数为: $GREEN_COL%s$NONE_COL\n" $i ${IP[$i]}
done
echo#显示访问量大于500的URI
echo -e "$GREEN_COL访问量大于500的URI:$NONE_COL"
for i in "${!URI[@]}"
doif [ ${URI["$i"]} -gt 500 ];thenecho "-----------------------------------"echo  "$i"echo "${URI[$i]}次"echo "-----------------------------------"fi
done

shell脚本统计分析Nginx日志相关推荐

  1. shell脚本使得nginx日志每天定时切割压缩

    Linux下添加shell脚本使得nginx日志每天定时切割压缩 对于nginx的日志文件,特别是access日志,如果我们不做任何处理的话,最后这个文件将会变得非常庞大 这时,无论是出现异常时查日志 ...

  2. 宝塔linux shell定时访问url,bt(宝塔)面板添加shell 脚本通过nginx日志封访问频率过高的IP...

    额,这篇文章是bt(宝塔)面板来写的文章,其他的程序如果是wdcp管理面板也有添加shell脚本的功能,大鸟自己用的是bt(宝塔)面板,所以说说如何添加shell 脚本通过nginx日志封访问频率过高 ...

  3. python定时任务执行shell脚本切割Nginx日志-慎用

    Python定时任务执行shell脚本切割Nginx日志(慎用) 缘起 我们有一个Nginx服务用来接收埋点上报数据,输出的日志文件比较大,Nginx没有自带日志分割组件,这样输出的日志文件就比较大, ...

  4. shell脚本分析 nginx日志访问次数最多及最耗时的页面(慢查询)

    当服务器压力比较大,跑起来很费力时候.我们经常做站点页面优化,会去查找那些页面访问次数比较多,而且比较费时. 找到那些访问次数高,并且比较耗时的地址,就行相关优化,会取得立竿见影的效果的. 下面是我在 ...

  5. nginx日志报警|微信公众号推送预警消息|PHP+shell脚本实现nginx错误日志报警恶意访问报警,实时通知到微信公众号 | 小型网站nginx日志报警轻量级方案

    1.shell脚本 命名:run.sh #!/bin/bash #!/usr/bin/python # -*- coding:utf-8 -*- #日志文件路径 accesslog=/www/wwwl ...

  6. 开发shell脚本检查Nginx实战分享

    开发shell脚本检查Nginx实战分享 点这里查看视频讲解 一.本脚本实现功能: 1.自动检查Nginx下面的代理节点是否正常 2.通过页面显示状态,有问题的节点给出页面报警及声音报警. 3.增加新 ...

  7. linux查询日志中页面返回状态码,[linux shell] Shell脚本实现apache日志中的状态码分析...

    这篇文章主要介绍了Shell脚本实现apache日志中的状态码分析,本文先是介绍了按天切割日志的方法,然后给出了分析访问状态码的脚本,需要的朋友可以参考下 一.首先将apache日志按天切割 复制代码 ...

  8. Nginx学习笔记3:Shell脚本检测Nginx服务状态

    前言 nginx 服务启动后,我们需要对其服务状态进行监控,今天学习过程中了解到一段非常有用的小脚本,不仅可以监控Nginx,也可以用来监控其他服务 脚本 A=`ps -C nginx –no-hea ...

  9. shell最大出现和连续出现次数_shell脚本分析 nginx日志访问次数最多及最耗时的页面(慢查询)...

    当服务器压力比较大,跑起来很费力时候.我们经常做站点页面优化,会去查找那些页面访问次数比较多,而且比较费时. 找到那些访问次数高,并且比较耗时的地址,就行相关优化,会取得立竿见影的效果的. 下面是我在 ...

最新文章

  1. 动态表单构建器——建造者模式
  2. jquery easy ui 简单字段选择搜索实现
  3. 图像处理:像素间的基本关系
  4. sql科学计数法转换为普通数字_一张图读懂Python3的Number(数字)类型
  5. css中改变边距会影响原大小,CSS:更改父容器中子项的边距会改变子项的宽度吗?...
  6. cmd mysql出现乱码怎么解决方法_cmd如何解决mysql乱码
  7. 软件测试岗位工作,到底可以做多久?
  8. tolua中使用protobuf3—集成lua-protobuf
  9. 疯狂Java讲义笔记整理
  10. Hash冲突以及如何解决Hash冲突
  11. new一个对象是个什么过程
  12. 如果局域网当中两台电脑互相ping不通
  13. 【Acwing提高】DP·背包
  14. 在工作空间中如何构造IPath或IFile
  15. 人工智能行业源代码防数据防泄密需求分析
  16. 完整简单c语言程序代码,一些简单的C语言程序代码.docx
  17. C语言结构体error: invalid use of incomplet type ‘ struct people’
  18. python pack是什么意思_python pack布局
  19. 获取目录服务器信息失dnf,DNF面临历史最大服务器崩溃:跨五回档风波,深渊史诗出货消失...
  20. HLS直播预取视频并更新m3u8

热门文章

  1. echarts+流程图
  2. win7 x32 x64 x86的区别
  3. 【药材识别】基于matlab GUI SVM色差色温判断药材炮制程度系统【含Matlab源码 2241期】
  4. 产品经理常用的数据指标(KPI)——付费用户
  5. js学习之——网页侧边栏广告效果
  6. 【转贴】麻省理工教授箴言:怎样做研究生!
  7. 死磕算法第三弹——排序算法(2)
  8. 理解计算机系统第八章(家庭作业)
  9. 启动docker中的compose.yml
  10. python cnn库_AMD深度学习库MIOpen更新,支持CNN加速