当前位置: 首页 > article >正文

根据nginx日志统计页面访问次数

 静态页面部署在nginx上,页面只有查看下载功能。

需求是统计每条访问次数和下载次数,根据日志分析写了一个shell脚本,触发脚本后生成一个html可以远程查看统计的数量。

#!/bin/bash
# nginx日志文件路径  
LOG_FILE="/usr/local/nginx/logs/access.log"  
#统计访问IP
#_index=$(grep "GET /public/index.html" "$LOG_FILE" | awk -F' ' '{print $1}' | sort | uniq -c)    
#_pdf=$(grep "GET /public/11.15.pdf" "$LOG_FILE" | awk -F' ' '{print $1}' | sort | uniq -c)   
#统计访问链接 
_index=$(grep "GET /public/index.html" "$LOG_FILE" |awk -F'[][]' '{print $2}')    
_pdf=$(grep "GET /public/11.15.pdf" "$LOG_FILE" | awk -F'[][]' '{print $2}')  
#结果写入日志     
echo "$_index" > public_index_access.log
echo "$_pdf" > public_pdf_access.log
#进行统计
echo "index.html access:<hr>" > public_access.log
cut -d: -f1 public_index_access.log | sort | uniq -c| awk '{print $2, $1}'| awk '{print $0, "<br>"}' >> public_access.log  
echo "<br><br>pdf access:<hr>" >> public_access.log
cut -d: -f1 public_pdf_access.log | sort | uniq -c| awk '{print $2, $1}'| awk '{print $0, "<br>"}'  >> public_access.log
sleep 1 
# 将访问统计数据插入到HTML页面中
ACCESS_STATS="$(cat public_access.log)"
html_content='
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>访问统计</title>
</head>
<body>
    <h1>访问统计数据</h1>
    <div id="access_stats">'$ACCESS_STATS'</div>
</body>
</html>
'

# 将内容写入 HTML 文件
echo "$html_content" > index.html

# 输出成功信息
echo "HTML file generated: index.html"


http://www.kler.cn/news/135863.html

相关文章:

  • 指针变量和地址
  • 11.1 文件拷贝移动与删除
  • 【Java】异常处理(一)
  • K8S基础笔记
  • 极域电子教室-教师机无法找到学生机
  • ArcEngine:如何进行缩放图层、属性信息显示、状态栏显示?
  • 关于这个“这是B站目前讲的最好的【Transformer实战】教程!“视频的目前可以运行的源代码GPU版本
  • 采集1688整店商品(店铺所有商品、店铺列表api)
  • 北京君正客户应用案例:掌静脉3D人脸猫眼视屏智能锁
  • 信息机房监控系统(动环辅助监控系统)
  • 4种经典的限流算法与集群限流
  • MAC地址_MAC地址格式_以太网的MAC帧_基础知识
  • IDEA运行thymeleaf的html文件打开端口为63342且连不上数据库
  • pnpm : 无法加载文件 E:\Soft\PromSoft\nodejs\node_global\pnpm.ps1,
  • 理解Android线程基础与多线程编程模型
  • CTFHub Git泄露
  • Spring Framework IOC依赖查找 - 按类型查找解析
  • Linux-CentOS重要模块
  • 编写高效的消息传递代码-对消息进行降维
  • 不同content-type对应的前端请求参数处理格式
  • HTTP四种请求方式,状态码,请求和响应报文
  • 比赛调研资料
  • Apache阿帕奇安装配置
  • 学习c#的第二十一天
  • pip list 和 conda list的区别
  • 在市场发展中寻变革,马上消费金融树行业发展“风向标”
  • Android修行手册-POI操作中文API文档
  • 数据结构之链表练习与习题详细解析
  • HTTPS流量抓包分析中出现无法加载key
  • vscode Prettier配置