网站每日PV/IP统计/总带宽/URL统计脚本分享(依据网站访问日志)

news/2024/5/10 6:27:46/文章来源:https://blog.csdn.net/fhl13017599952/article/details/85951417

在平时的运维工作中,我们运维人员需要清楚自己网站每天的总访问量、总带宽、ip统计和url统计等。
虽然网站已经在服务商那里做了CDN加速,所以网站流量压力都在前方CDN层了
像每日PV,带宽,ip统计等数据也都可以在他们后台里查看到的。

======================================================================
通过下面的方法,可以快速根据子网掩码算出它的掩码位:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

子网掩码            掩码位

255.255.255.0       24位    (最后一个数是0,则256-0=256=2^8,一共32位,则该掩码位是32-8=24)

255.255.255.248     29位    (256-248=8=2^3,则该掩码位是32-3=29)

255.255.255.224     27位    (256-224=32=2^5,则该掩码位是32-5=27)

255.255.252.0       22位    (256-0=256=2^8,256-252=4=2^2,则该掩码位是32-8-2=22位)

255.255.224.0       19位    (256-0=256=2^8,256-224=32=2^5,则该掩码位是32-8-5=19位)

  

也可以根据掩码位快速算出它的子网掩码

掩码位    子网掩码

28位      255.255.255.240  (32-28=4,2^4=16,256-16=240,则该子网掩码为255.255.255.240)

30位      255.255.255.252  (32-30=2,2^2=4,256-4=252,则该子网掩码为255.255.255.252)

21位      255.255.248.0    (32-21=11=3+8,2^3=8,256-8=248,2^8=256,256-256=0,则该子网掩码为255.255.248.0)

18位      255.255.192.0    (32-18=14=6+8,2^6=64,256-64=192,2^8=256,256-256=0,则该子网掩码为255.255.192.0)

11位      255.224.0.0      (32-11=21=5+8+8,2^5=32,256-32=224,2^8=256,256-256=0,2^8=256,256-256=0,则该子网掩码为255.224.0.0)

------------------------------------------------------------------------------------------------------------------------

192.168.10.8/16

192.168.8./16

 

172.16.50.5/24

172.16.51.7/24

 

以上两组ip,其中:

第一组是同网段ip,因为子网掩码是16,即255.255.0.0,前两个是网络地址,后两个机器地址,只要前两个数字相同就是同网段ip。

第一组不是同网段ip,因为子网掩码是24,即255.255.255.0,前三个是网络地址,后两个机器地址,只要前三个数字不相同就不是同网段ip。

 

简单来说:

不同网段的ip相互通信,需要经过三层网络。即三层网络可以跨多个冲突域,可以组大型的网络。

相同网段的ip相互通信,经过大二层网络。即二层网络仅仅是同一个冲突域内,组网能力非常有限,一般只是小局域网

---------------------------------------------------------------------------------------------------------------------
在这里,还是分享一个很早前用到过的shell统计脚本,可以结合crontab计划任务,每天给你的邮箱发送一个统计报告~【前提是本机已安装sendmail并启动】
脚本统计了:
1)总访问量
2)总带宽
3)独立访客量
4)访问IP统计
5)访问url统计
6)来源统计
7)404统计
8)搜索引擎访问统计(谷歌,百度)
9)搜索引擎来源统计(谷歌,百度)

[root@115r ~]# cat tongji.sh     //脚本如下

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

#!/bin/bash

log_path=/Data/logs/nginx/www.huanqiu.com/access.log

domain="huanqiu.com"

email="wangshibo@huanqiuc.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}

上述脚本可适用于其他网站的统计。只需要修改上面脚本中的三个变量即可:
log_path
domain
email
把此脚本添加到计划任务,就可以每天接收到统计的数据了。

执行上面的脚本,去wangshibo@huanqiu.com邮箱里查看统计报告:
[root@115r ~]# sh tongji.sh

[root@115r ~]#crontab -e
#每天凌晨按时统计一次
59 23 * * * /bin/bash -x /root/tongji.sh >/dev/null 2>&1

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

------------------------------------------------------------------------------------------------------------------------------

上面是单个url的统计情况,如果时多个网站的访问情况(使用for do done语句做shell脚本),则脚本如下:

  

[root@web ~]# cat all_wang_access.sh

#!/bin/bash

for log_path in /data/nginx/logs/athena_access.log /data/nginx/logs/ehr_access.log /data/nginx/logs/im_access.log /data/nginx/logs/www_access.log /data/nginx/logs/zrx_access.log

  

do

  

domain=`echo $(echo ${log_path}|cut -d"_" -f1|awk -F"/" '{print $5}').wang.com`

email="shibo.wang@wang.com daiying.qi@wang.com nan.li@wang.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 "-----------------------------------$domain访问概况-----------------------------------\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}

  

done

  

使用crontab做定时任务

[root@web ~]# crontab -l

#网站访问情况统计

50 23 * * * /bin/bash -x /opt/wang.com_access/all_wang_access.sh > /dev/null 2>&1

***************当你发现自己的才华撑不起野心时,就请安静下来学习吧***************

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_884675.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

25.Nginx概念、在linux下的安装、静态网站的部署、反向代理和负载均衡

1.什么是Nginx Nginx 是一款高性能的 http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。由俄罗斯的程序设计师伊戈尔西索夫(Igor Sysoev)所开发,官方测试 nginx 能够支支撑 5 万并发链接,并且…

大型网站技术架构(一)--大型网站架构演化

看完了有一本书,就应该有所收获,有所总结,最近把《大型网站技术架构》一书给看完了,给人的印象实在深刻,再加上之前也搞过书本上讲的反向代理和负载均衡以及session独立存储和缓存,因此书本看起来还是挺通俗…

李新SEO:360搜索还需多久才能追上百度搜索?

奇虎360搜索自2012年8月16日悄然上线后,似乎没有太大的动静。然而在神不知鬼不觉中,360搜索已经对整个搜索市场造成了冲击。下图是今年7月份国内搜索引擎市场份额: 从上图可以看出,国内搜索引擎市场,百度依旧占领主导地…

简易钓鱼网站的构建(Kali SetoolKit)

首先需要先安装 Kali Linux 1.打开setoolKit 界面如下: 2.输入1(社会工程学攻击) 3.输入2 (网站攻击) 4.输入3(钓鱼网站攻击) 5.输入2(网站克隆) 6.出现如下界面&…

资源网站收集

收集一些有趣的技术学习网址 1、机器人钢琴家 https://kevinzakka.github.io/robopianist-demo/ 谷歌一项研究的演示,可以根据乐曲生成对应的弹奏指法,在网页上再现出来,非常厉害。 2、i18n AI 助手 https://chatgpt-i18n.vercel.app 借助 C…

学习网站布局 案例{1}

网站 html <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevice-width, …

给广大单身程序员介绍个开源的 “情侣网站”,女神感动到哭,追女神利器,脱单好帮手

首先&#xff0c;网站是这样的&#xff1a; 网站链接&#xff1a; http://www.fengyunxiao.cn 备用链接&#xff1a;http://t.cn/Ef6v2Uw 没错&#xff0c;粉粉的风格&#xff0c;女孩子最喜欢的风格。同时内容真实&#xff0c;情感丰富&#xff0c;互动方便&#xff0c;可玩性…

爬虫(二)requests 登陆某检索网站

1 import requests2 import os3 from PIL import Image4 import pytesseract5 import re6 7 rootUrl xxx8 # 构建登录页面url9 loginUrl rootUrl /sipopublicsearch/portal/uilogin-forwardLogin.shtml10 # 构建登陆页面headers11 rootHeaders {12 Cache-Control: max…

python requests模拟登陆带验证码的网站

作为之前专利爬虫的续篇&#xff0c;本篇准备描述如何通过python的requests模块登录专利查询网站。 环境准备 python 3.6requests chrome尝试 首先&#xff0c;我们使用chrome尝试登录专利网站&#xff0c;并通过network分析各个请求的相关信息。 通过分析network&#x…

如何在Microsoft Visual studio Ultimate 2012中安装配置Python 2.7和Diango1.5.1,并新建第一个网站

1.下载Python。 下载地址&#xff1a;https://www.python.org/downloads/windows/ 我的电脑是Windows 7 64位的操作系统&#xff0c;所以下载的是python-2.7.1&#xff11;.msi&#xff0c;下载步骤如下图&#xff1a; 其中&#xff0c;VS 2012对python的安装文件没有要求…

基于KNN算法的约会网站配对效果 python3.2

续前文 Python3.2 实现基于KNN算法的数据分类 。今天看完了《机器学习实战》中关于KNN算法的一个完整案例&#xff0c;将所有代码加了注释&#xff0c;并利用tkinter 将其改造为GUI式的交互界面。&#xff08;文中没有直接作用的方法我已经注释&#xff09; from numpy impor…

app和wap手机网站的区别在那里

app在大行其道的情况下&#xff0c;本人来发表关于app和手机wap网站的几个观点&#xff0c;希望对各位同仁有参考价值&#xff1a; 第一点 我们从依附的平台来看&#xff1a; 移动Wap网站&#xff1a;由移动设备的浏览器来支持&#xff0c;只要移动设备支持上网浏览网站基本上可…

Java Web学习十七:网站用户注册登录;预约信息

Java Web学习十七&#xff1a;网站用户注册&登录&#xff1b;预约信息 一&#xff1a;案例任务二&#xff1a;准备阶段三&#xff1a;代码分析与展示1.工具类的代码分析&#xff1a;2.注册功能代码分析 刚刚学习初期&#xff0c;我们写了网站用户的注册以及登录功能&#x…

黄阶中级-《大型网站技术架构》- 概述 - 修改0次

1、大型网站架构演化 互联网站的发展仅仅经历了 20 多年的时间。 大型网站软件系统的特点&#xff1a; 高并发、高流量。谷歌日均 PV 几十亿。 PV (访问量)&#xff1a;即 Page View , 即页面浏览量或点击量&#xff0c;用户每次刷新即被计算一次高可用。百度被黑就会成为热…

GCP搭建网站后403解决

由于开发需要&#xff0c;在本地用虚拟机配置了LNMP环境&#xff0c;使用的是Centos 6.8的yum安装&#xff0c;安装一切正常&#xff0c;但是使用默认的网站配置目录&#xff0c;是在/usr/share/nginx/html这个目录下。简直是有点奇葩了。 于是乎&#xff0c;我先将默认的配置…

【iPhone】网络编程–一起来做网站客户端(一)

http://www.pan-apps.com/?p281 最近几天&#xff0c;一直在学习网络编程方面&#xff0c;我觉得这是移动开发必须了解的知识吧 在实践中学习&#xff0c;才是最好的方法 于是就决定为公司OA系统做一个iphone客户端&#xff0c;但是前提是这个系统没有提供任何API,所以只能悲剧…

编程要趁早 BI推荐8个编程学习网站

http://www.cocoachina.com/applenews/devnews/2013/0329/5914.html 最近一个热门话题是雅虎以3000万美元收购了移动阅读应用Summly&#xff0c;真正让人吃惊的不是3000万美元的价格值不值&#xff0c;而是Summly的开发者--只有17岁的尼克达洛伊西奥。他12岁开始学习编程&#…

自动为 Gatsby网站中的 Markdown 页面添加 sidebar

0 简介 我想在Gatsby网站上创建Markdown页面时自动添加侧边栏。 有一个 starter “ gatsby-gitbook-starter” 可以支持markdown文件的侧边栏&#xff0c;但仅支持1级。 我希望能够支持更多级别。 你可以通过下面的命令安装这个starter。 gatsby new gatsby-gitbook-starter…

如何在标题栏title前添加网站logo?

第一种方法&#xff1a;据说在网站根目录下放着我们的ico型logo&#xff0c;命名为favicon.ico&#xff0c;浏览器会自动去找到并显示。试了试&#xff0c;在firefox23和ie8下都没有成功。 第二种方法&#xff1a;添加代码&#xff0c;如下&#xff1a; 1 <link rel"sh…

阿里云域名解析完成后仍然无法通过域名正常访问网站

通过阿里云进行域名解析后&#xff0c;仍然无法正常访问网站的解释&#xff0c;与解决办法 1、域名解析完成后&#xff0c;未在主机管理页面进行域名绑定。 域名绑定流程&#xff1a; 进入阿里云虚拟主机页面&#xff0c;找到相应的虚拟主机&#xff0c;点击后面的管理。 点击…