网站pv统计脚本
2024-08-25 07:20:19
在平时的运维工作中,我们运维人员需要清楚自己网站每天的总访问量、总带宽、ip统计和url统计等。
虽然网站已经在服务商那里做了CDN加速,所以网站流量压力都在前方CDN层了
像每日PV,带宽,ip统计等数据也都可以在他们后台里查看到的。
可以结合crontab计划任务,每天给你的邮箱发送一个统计报告~【前提是本机已安装邮件服务并启动】
脚本统计了:
1)总访问量
2)总带宽
3)独立访客量
4)访问IP统计
5)访问url统计
6)来源统计
7)404统计
8)搜索引擎访问统计(谷歌,百度)
9)搜索引擎来源统计(谷歌,百度)
#!/bin/bash
log_path=/usr/local/nginx/logs/access.log
domain=
"www.qyj.com"
email=
"15221024542@163.com"
maketime=`
date
+%Y-%m-%d
" "
%H
":"
%M`
logdate=`
date
-d
"yesterday"
+%Y-%m-%d`
total_visit=`
wc
-l ${log_path} |
awk
'{print $1}'
`
total_bandwidth=`
awk
-
v
total=0
'{total+=$10}END{print total/1024/1024}'
${log_path}`
total_unique=`
awk
'{ip[$1]++}END{print asort(ip)}'
${log_path}`
ip_pv=`
awk
'{ip[$1]++}END{for (k in ip){print ip[k],k}}'
${log_path} |
sort
-rn |
head
-20`
url_num=`
awk
'{url[$7]++}END{for (k in url){print url[k],k}}'
${log_path} |
sort
-rn |
head
-20`
referer=`
awk
-
v
domain=$domain
'$11 !~ /http:\/\/[^/]*'
"$domain"
'/{url[$11]++}END{for (k in url){print url[k],k}}'
${log_path} |
sort
-rn |
head
-20`
notfound=`
awk
'$9 == 404 {url[$7]++}END{for (k in url){print url[k],k}}'
${log_path} |
sort
-rn |
head
-20`
spider=`
awk
-F
'"'
'$6 ~ /Baiduspider/ {spider["baiduspider"]++} $6 ~ /Googlebot/ {spider["googlebot"]++}END{for (k in spider){print k,spider[k]}}'
${log_path}`
search=`
awk
-F
'"'
'$4 ~ /http:\/\/www\.baidu\.com/ {search["baidu_search"]++} $4 ~ /http:\/\/www\.google\.com/ {search["google_search"]++}END{for (k in search){print k,search[k]}}'
${log_path}`
echo
-e
"概况\n报告生成时间:${maketime}\n总访问量:${total_visit}\n总带宽:${total_bandwidth}M\n独立访客:${total_unique}\n\n访问IP统计\n${ip_pv}\n\n访问url统计\n${url_num}\n\n来源页面统计\n${referer}\n\n404统计\n${notfound}\n\n蜘蛛统计\n${spider}\n\n搜索引擎来源统计\n${search}"
| mail -s
"$domain $logdate log statistics"
${email}
结合计划任务就可以看到每天的访问量以及独立ip访问了、
最新文章
- OpenCV学习笔记(一)——OpenCV3.1.0+VS2015开发环境配置
- 内置对象session ,cookic,Application,ViewState
- spice命令使用
- GridView控件隐藏列
- 解决CentOS6.4 Docker ";Couldn't connect to Docker daemon ..."; 问题
- 一个发光的搜索边框(纯CSS3)
- JBPM4之decision节点:2、好学生|坏学生|超级学生
- NHibernate分页
- 网站开发常用jQuery插件总结(13)定位插件scrollto
- Delphi keydown与keyup、keypress的区别(KeyDown 和KeyUp 通常可以捕获键盘除了PrScrn所有按键)
- 启动tomcat的时候,服务器暂停到装载mysql驱动文件的原因
- Asycn/Await 异步编程初窥
- 如何在ASP.NET Core Web API测试中使用Postman
- go-mysql: database/sql 接口适配
- bootstrapvalidator的简单校验【必填校验、长度校验、是否存在校验(remote)】
- C++ static 静态变量&;静态成员函数
- Linux之chgrp
- RichEdit选中文字右键菜单的实现
- ThinkPHP子类继承Controller类的注意事项
- 8.2、常用模块介绍2:xml,configparser,hashlib
热门文章
- [leetcode-543-Diameter of Binary Tree]
- 【项目1-1】使用HTML5+CSS3绘制HTML5的logo
- 开源分享,使用Servlet实现360商城
- GridView七十二绝技-大全(收藏版)(转至别人博客)
- React Image加载图片过大导致ListView滑动卡顿
- angular.extend、angular.$watch、angular.bootstrap
- Oracle数据迁移笔记-Rownum与序列的自增长的组合用法技巧
- Akka(13): 分布式运算:Cluster-Sharding-运算的集群分片
- Android项目导入工程Module
- hdu_1907:John(Nim变形)