本人在Linux运维中收集的一些通用的统计,Apache/Nginx服务器日志的命令组合。

Apache日志统计

# 列出当天访问次数最多的IP命令
[root@lyshark.cnblogs.com httpd]# cut -d- -f 1 access_log | uniq -c | sort -rn | head -20 # 查看当天有多少个IP访问
[root@lyshark.cnblogs.com httpd]# awk '{print $1}' access_log | sort | uniq | wc -l # 查看某一个页面总计被访问的次数
[root@lyshark.cnblogs.com httpd]# cat access_log | grep "index.php" | wc -l # 查看每一个IP访问了多少个页面
[root@lyshark.cnblogs.com httpd]# awk '{++S[$1]} END {for (a in S) print a,S[a]}' access_log # 将每个IP访问的页面数进行从小到大排序
[root@lyshark.cnblogs.com httpd]# awk '{++S[$1]} END {for (a in S) print S[a],a}' access_log | sort -n # 查看某一个IP访问了哪些页面
[root@lyshark.cnblogs.com httpd]# grep "^192.168.1.2" access_log | awk '{print $1,$7}' # 去掉搜索引擎统计当天的页面
[root@lyshark.cnblogs.com httpd]# awk '{print $12,$1}' access_log | grep ^"Mozilla" | awk '{print $2}' |sort | uniq | wc -l # 查看21/Nov/2019:03:40:26这一个小时内有多少IP访问
[root@lyshark.cnblogs.com httpd]# awk '{print $4,$1}' access_log | grep "21/Nov/2019:03:40:26" | awk '{print $2}'| sort | uniq | wc -l

Nginx 日志统计

# 列出所有的IP访问情况
[root@lyshark.cnblogs.com httpd]# awk '{print $1}' access_log | sort -n | uniq # 查看访问最频繁的前100个IP
[root@lyshark.cnblogs.com httpd]# awk '{print $1}' access_log | sort -n | uniq -c | sort -rn | head -n 100 # 查看访问100次以上的IP
[root@lyshark.cnblogs.com httpd]# awk '{print $1}' access_log | sort -n | uniq -c | awk '{if($1 >100) print $0}' | sort -rn # 查询某个IP的详细访问情况,按访问频率排序
[root@lyshark.cnblogs.com httpd]# grep '192.168.1.2' access_log | awk '{print $7}' | sort | uniq -c | sort -rn | head -n 100 # 页面访问统计:查看访问最频繁的前100个页面
[root@lyshark.cnblogs.com httpd]# awk '{print $7}' access_log | sort | uniq -c | sort -rn | head -n 100 # 页面访问统计:查看访问最频繁的前100个页面(排除php|py)
[root@lyshark.cnblogs.com httpd]# grep -E -v ".php|.py" access_log | awk '{print $7}' | sort |uniq -c | sort -rn | head -n 100 # 页面访问统计:查看页面访问次数超过100次的页面
[root@lyshark.cnblogs.com httpd]# cat access_log | cut -d ' ' -f 7 | sort |uniq -c | awk '{if ($1 > 100) print$0}' # 页面访问统计:查看最近1000条记录中,访问量最高的页面
[root@lyshark.cnblogs.com httpd]# tail -1000 access_log | awk '{print $7}' | sort | uniq -c | sort -nr # 每秒请求量统计:统计每秒的请求数前100的时间点(精确到秒)
[root@lyshark.cnblogs.com httpd]# awk '{print $4}' access_log | cut -c14-21 | sort | uniq -c | sort -nr | head -n 100 # 每分钟请求量统计 11、统计每分钟的请求数,top100的时间点(精确到分钟)
[root@lyshark.cnblogs.com httpd]# awk '{print $4}' access_log | cut -c14-18 | sort | uniq -c | sort -nr | head -n 100 # 每小时请求量统计 12、统计每小时的请求数,top100的时间点(精确到小时)
[root@lyshark.cnblogs.com httpd]# awk '{print $4}' access_log | cut -c14-15 | sort | uniq -c | sort -nr | head -n 100

统计Web服务状态

# 统计网站爬虫
[root@lyshark.cnblogs.com httpd]# grep -E 'Googlebot|Baiduspider' access_log | awk '{ print $1 }' | sort | uniq # 统计网站中浏览器的访问情况
[root@lyshark.cnblogs.com httpd]# cat access_log | grep -v -E 'MSIE|Firefox|Chrome|Opera|Safari|Gecko|Maxthon' | sort | uniq -c | sort -r -n | head -n 100 # 统计网段分布情况
[root@lyshark.cnblogs.com httpd]# cat access_log | awk '{print $1}' | awk -F'.' '{print $1"."$2"."$3".0"}' | sort | uniq -c | sort -r -n | head -n 200 # 统计来访域名
[root@lyshark.cnblogs.com httpd]# cat access_log | awk '{print $2}' | sort | uniq -c | sort -rn | more # 统计HTTP状态
[root@lyshark.cnblogs.com httpd]# cat access_log | awk '{print $9}' | sort | uniq -c | sort -rn | more # URL访问次数统计
[root@lyshark.cnblogs.com httpd]# cat access_log | awk '{print $7}' | sort | uniq -c | sort -rn | more # URL访问流量统计
[root@lyshark.cnblogs.com httpd]# cat access_log | awk '{print $7}' | egrep '?|&' | sort | uniq -c | sort -rn | more # 文件流量统计
[root@lyshark.cnblogs.com httpd]# cat access_log | awk '{sum[$7]+=$10}END{for(i in sum){print sum[i],i}}' | \
sort -rn | more | grep '200' access_log | \
awk '{sum[$7]+=$10}END{for(i in sum){print sum[i],i}}' | sort -rn | more

其他统计组合

# 列出当天访问次数最多的IP命令
[root@lyshark.cnblogs.com httpd]# cut -d- -f 1 access_log | uniq -c | sort -rn | head -20 # 查看当天有多少个IP访问
[root@lyshark.cnblogs.com httpd]# awk '{print $1}' access_log | sort | uniq | wc -l # 查看某一个页面总计被访问的次数
[root@lyshark.cnblogs.com httpd]# cat access_log | grep "index.php" | wc -l # 查看每一个IP访问了多少个页面
[root@lyshark.cnblogs.com httpd]# awk '{++S[$1]} END {for (a in S) print a,S[a]}' access_log # 将每个IP访问的页面数进行从小到大排序
[root@lyshark.cnblogs.com httpd]# awk '{++S[$1]} END {for (a in S) print S[a],a}' access_log | sort -n # 查看某一个IP访问了哪些页面
[root@lyshark.cnblogs.com httpd]# grep "^192.168.1.2" access_log | awk '{print $1,$7}' # 去掉搜索引擎统计当天的页面
[root@lyshark.cnblogs.com httpd]# awk '{print $12,$1}' access_log | grep ^"Mozilla" | awk '{print $2}' |sort | uniq | wc -l # 查看21/Nov/2019:03:40:26这一个小时内有多少IP访问
[root@lyshark.cnblogs.com httpd]# awk '{print $4,$1}' access_log | grep "21/Nov/2019:03:40:26" | awk '{print $2}'| sort | uniq | wc -l
Nginx日志统计: # 列出所有的IP访问情况
[root@lyshark.cnblogs.com httpd]# awk '{print $1}' access_log | sort -n | uniq # 查看访问最频繁的前100个IP
[root@lyshark.cnblogs.com httpd]# awk '{print $1}' access_log | sort -n | uniq -c | sort -rn | head -n 100 # 查看访问100次以上的IP
[root@lyshark.cnblogs.com httpd]# awk '{print $1}' access_log | sort -n | uniq -c | awk '{if($1 >100) print $0}' | sort -rn # 查询某个IP的详细访问情况,按访问频率排序
[root@lyshark.cnblogs.com httpd]# grep '192.168.1.2' access_log | awk '{print $7}' | sort | uniq -c | sort -rn | head -n 100 # 页面访问统计:查看访问最频繁的前100个页面
[root@lyshark.cnblogs.com httpd]# awk '{print $7}' access_log | sort | uniq -c | sort -rn | head -n 100 # 页面访问统计:查看访问最频繁的前100个页面(排除php|py)
[root@lyshark.cnblogs.com httpd]# grep -E -v ".php|.py" access_log | awk '{print $7}' | sort |uniq -c | sort -rn | head -n 100 # 页面访问统计:查看页面访问次数超过100次的页面
[root@lyshark.cnblogs.com httpd]# cat access_log | cut -d ' ' -f 7 | sort |uniq -c | awk '{if ($1 > 100) print$0}' # 页面访问统计:查看最近1000条记录中,访问量最高的页面
[root@lyshark.cnblogs.com httpd]# tail -1000 access_log | awk '{print $7}' | sort | uniq -c | sort -nr # 每秒请求量统计:统计每秒的请求数前100的时间点(精确到秒)
[root@lyshark.cnblogs.com httpd]# awk '{print $4}' access_log | cut -c14-21 | sort | uniq -c | sort -nr | head -n 100 # 每分钟请求量统计 11、统计每分钟的请求数,top100的时间点(精确到分钟)
[root@lyshark.cnblogs.com httpd]# awk '{print $4}' access_log | cut -c14-18 | sort | uniq -c | sort -nr | head -n 100 # 每小时请求量统计 12、统计每小时的请求数,top100的时间点(精确到小时)
[root@lyshark.cnblogs.com httpd]# awk '{print $4}' access_log | cut -c14-15 | sort | uniq -c | sort -nr | head -n 100
统计其他页面数据: # 统计网站爬虫
[root@lyshark.cnblogs.com httpd]# grep -E 'Googlebot|Baiduspider' access_log | awk '{ print $1 }' | sort | uniq # 统计网站中浏览器的访问情况
[root@lyshark.cnblogs.com httpd]# cat access_log | grep -v -E 'MSIE|Firefox|Chrome|Opera|Safari|Gecko|Maxthon' | sort | uniq -c | sort -r -n | head -n 100 # 统计网段分布情况
[root@lyshark.cnblogs.com httpd]# cat access_log | awk '{print $1}' | awk -F'.' '{print $1"."$2"."$3".0"}' | sort | uniq -c | sort -r -n | head -n 200 # 统计来访域名
[root@lyshark.cnblogs.com httpd]# cat access_log | awk '{print $2}' | sort | uniq -c | sort -rn | more # 统计HTTP状态
[root@lyshark.cnblogs.com httpd]# cat access_log | awk '{print $9}' | sort | uniq -c | sort -rn | more # URL访问次数统计
[root@lyshark.cnblogs.com httpd]# cat access_log | awk '{print $7}' | sort | uniq -c | sort -rn | more # URL访问流量统计
[root@lyshark.cnblogs.com httpd]# cat access_log | awk '{print $7}' | egrep '?|&' | sort | uniq -c | sort -rn | more # 文件流量统计
[root@lyshark.cnblogs.com httpd]# cat access_log | awk '{sum[$7]+=$10}END{for(i in sum){print sum[i],i}}' | \
sort -rn | more | grep '200' access_log | \
awk '{sum[$7]+=$10}END{for(i in sum){print sum[i],i}}' | sort -rn | more

次数统计

查看某一个页面被访问的次数
[root@lyshark.cnblogs.com httpd]# grep "/index.php" log_file | wc -l 查看每一个IP访问了多少个页面
[root@lyshark.cnblogs.com httpd]# awk '{++S[$1]} END {for (a in S) print a,S[a]}' log_file 将每个IP访问的页面数进行从小到大排序
[root@lyshark.cnblogs.com httpd]# awk '{++S[$1]} END {for (a in S) print S[a],a}' log_file | sort -n 查看某一个IP访问了哪些页面
[root@lyshark.cnblogs.com httpd]# grep ^111.111.111.111 log_file| awk '{print $1,$7}' 去掉搜索引擎统计当天的页面
[root@lyshark.cnblogs.com httpd]# awk '{print $12,$1}' log_file | grep ^"Mozilla | awk '{print $2}' |sort | uniq | wc -l 查看2018年6月21日14时这一个小时内有多少IP访问
[root@lyshark.cnblogs.com httpd]# awk '{print $4,$1}' log_file | grep 21/Jun/2018:14 | awk '{print $2}'| sort | uniq | wc -l 统计爬虫
[root@lyshark.cnblogs.com httpd]# grep -E 'Googlebot|Baiduspider' /www/logs/access.2019-02-23.log | awk '{ print $1 }' | sort | uniq 统计浏览器
[root@lyshark.cnblogs.com httpd]# cat /www/logs/access.2019-02-23.log | grep -v -E 'MSIE|Firefox|Chrome|Opera|Safari|Gecko|Maxthon' | sort | uniq -c | sort -r -n | head -n 100 IP 统计
[root@lyshark.cnblogs.com httpd]# grep '23/May/2019' /www/logs/access.2019-02-23.log | awk '{print $1}' | awk -F'.' '{print $1"."$2"."$3"."$4}' | sort | uniq -c | sort -r -n | head -n 10 2206 219.136.134.13 1497 182.34.15.248 1431 211.140.143.100 1431 119.145.149.106 1427 61.183.15.179 1427 218.6.8.189 1422 124.232.150.171 1421 106.187.47.224 1420 61.160.220.252 1418 114.80.201.18 统计网段
[root@lyshark.cnblogs.com httpd]# cat /www/logs/access.2019-02-23.log | awk '{print $1}' | awk -F'.' '{print $1"."$2"."$3".0"}' | sort | uniq -c | sort -r -n | head -n 200 统计域名
[root@lyshark.cnblogs.com httpd]# cat /www/logs/access.2019-02-23.log |awk '{print $2}'|sort|uniq -c|sort -rn|more HTTP状态
[root@lyshark.cnblogs.com httpd]# cat /www/logs/access.2019-02-23.log |awk '{print $9}'|sort|uniq -c|sort -rn|more5056585 3041125579 200 7602 400 5 301 URL 统计
[root@lyshark.cnblogs.com httpd]# cat /www/logs/access.2019-02-23.log |awk '{print $7}'|sort|uniq -c|sort -rn|more 文件流量统计
[root@lyshark.cnblogs.com httpd]# cat /www/logs/access.2019-02-23.log |awk '{sum[$7]+=$10}END{for(i in sum){print sum[i],i}}'|sort -rn|moregrep ' 200 ' /www/logs/access.2019-02-23.log |awk '{sum[$7]+=$10}END{for(i in sum){print sum[i],i}}'|sort -rn|more URL访问量统计
[root@lyshark.cnblogs.com httpd]# cat /www/logs/access.2019-02-23.log | awk '{print $7}' | egrep '?|&' | sort | uniq -c | sort -rn | more 查出运行速度最慢的脚本
[root@lyshark.cnblogs.com httpd]# grep -v 0$ /www/logs/access.2019-02-23.log | awk -F '" ' '{print $4" " $1}' web.log | awk '{print $1" "$8}' | sort -n -k 1 -r | uniq > /tmp/slow_url.txt IP, URL 抽取
[root@lyshark.cnblogs.com httpd]# tail -f /www/logs/access.2019-02-23.log | grep '/test.html' | awk '{print $1" "$7}'

Linux 统计Web服务日志命令的更多相关文章

  1. Linux系统WEB服务之Nginx基础入门

    一.Nginxi简介 Nginx是什么?它是一个开源.高性能的WEB服务器软件和代理服务器软件,由俄罗斯人Igor Sysoev 开发实现.它的功能主要分三类,第一是它作为一个WEB服务软件使用:第二 ...

  2. Linux中web服务运行情况的方法

    监控一般通过脚本实现,使用定时任务定期执行检测. 1.端口 本地:ss,netstat,lsof 远程:telnet,namp,nc 2.本地进程数 例如: lsof -i:80|wc -l ps - ...

  3. 统计web 访问日志的请求数据

    tomcat日志格式  在配置文件 server.xml 中,具体参照官方文档 https://tomcat.apache.org/tomcat-8.0-doc/config/valve.html#A ...

  4. linux系统 web在线日志分析

    线上环境出现问题时,不能像本地环境一样,断点查找问题,只有根据日志分析来定位问题,当然有资深的经验也是可以的,哈哈. 最基本的就是cat命令,可以通过cat filename,来查看文件全部内容, & ...

  5. Linux服务器配置WEB应用日志文件到指定目录

    在Linux服务器上配置WEB应用程序日志到指定文件   服务器环境是 RedHat Linux, 其上运行的是 Apache + Tomcat,容器中运行的是我们公司的壹个小型电子商务网站,原来项目 ...

  6. 马老师 linux必备web服务入门及高级进阶

    http://edu.51cto.com/course/course_id-866.html HTTP: HyperText Transfer Protocol 超文本传输协议 超链接: Web: h ...

  7. linux实时查看更新日志命令

    很多时候在调试生成或正式平台服务器的时候想查看实时的日志输出,在Linux中可以使用tail 或 watch来实现. 比如我们项目中有个 app.log 的日志文件,我们普通读取都使用 vi app. ...

  8. [转]linux实时查看更新日志命令

    很多时候在调试生成或正式平台服务器的时候想查看实时的日志输出,在Linux中可以使用tail 或 watch来实现. 比如我们项目中有个 app.log 的日志文件,我们普通读取都使用 vi app. ...

  9. Linux的web服务的介绍

    web(World Wide Web)即全球广域网,也称为万维网,它是一种基于超文本和HTTP的.全球性的.动态交互的.跨平台的分布式图形信息系统.是建立在Internet上的一种网络服务,为浏览者在 ...

  10. linux服务器查看项目日志命令

    1.tailf mywork.log | grep --line-buffered findUserList      实时跟踪日志,这里是只要findUserList 这个方法被运行,就会将它的日志 ...

随机推荐

  1. 一个神奇的Python库:Evidently,机器学习必备

    Evidently 是一个面向数据科学家和机器学习工程师的开源 Python 库.它有助于评估.测试和监控从验证到生产的数据和 ML 模型.它适用于表格.文本数据和嵌入. 简介 Evidently 是 ...

  2. IntelliJ IDEA 2024年最新下载、安装使用教程、亲测可用

    本文讲的是2023.3最新版本IntelliJ IDEA破解.IntelliJ IDEA激活码.IntelliJ IDEA安装.IntelliJ IDEA永久激活码的最新永久激活教程,本文有mac和w ...

  3. WPF Window无边框窗体阴影效果

    WPF通过WindowChrome实现Window无边框窗体阴影效果 代码: <Window x:Class="SunCreate.PACP.Client.UI.GIS.CameraD ...

  4. AtCoder Beginner Contest 203 (A~D,玄学二分场)

    补题链接:Here A - Chinchirorin 给出 \(a,b,c\) 三个正整数,现请打印各种情况的答案: \(a=b=c\) ,输出一个即可 \(a = b\ and\ a != c\) ...

  5. springboot线程池的使用方式2

    一.简单介绍 方式1:Executors.newCachedThreadPool线程池.Executors有7种不同的线程池. private static final ExecutorService ...

  6. v-html会导致xss攻击

  7. java项目实战-jdbc实现-书城的增删改查-day21

    目录 1. 安装mysql 安装navicate 2. jdbc实现增删改查 1. 安装mysql 安装navicate 参考网上资料 创库 创表 并放入3条测试数据 2. jdbc实现增删改查 bo ...

  8. 每天学五分钟 Liunx 001 | 用户及用户组

    Liunx 文件权限 [root@controller-0 ~]# ll -al heihei -rw-r--r--. 1 root root 0 Mar 3 07:39 heihei 第一列 -rw ...

  9. 深入理解Kafka核心设计及原理(一):初识Kafka

    转载请注明出处: 1.1 kafka简介 Kafka 起初是由 Linkedin 公司采用 Scala 语言开发的一个多分区.多副本且基于 ZooKeeper协调的分布式消息系统,现己被捐献给 Apa ...

  10. 使用ProjectQ生成量子算法指令集

    技术背景 所谓的指令集,按照字面意思来理解就是计算机底层允许使用的操作指令的集合.在量子计算机领域,由于实现方案的不同,在不同的体系内的指令集其实是不一样的,并不是说OpenQASM里面的所有指令都会 ...