本人在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. 【django-vue】celery延迟任务、定时任务 django中使用celery 秒杀功能 双写一致性 首页轮播图定时更新 课程前端页面

    目录 上节回顾 字符编码 django-redis 今日内容 1 celery 执行异步任务,延迟任务,定时任务 延时任务 定时任务 2 django中使用celery 2.1 秒杀功能 2.1.1 ...

  2. Spring相关原理

    Spring是什么? Spring是一个轻量级的IoC和AOP容器框架.常见的配置方式有三种:基于XML的配置.基于注解的配置.基于Java的配置. 模块分为以下:Spring Core:Spring ...

  3. 六、mycat全局自增

    系列导航 一.Mycat实战---为什么要用mycat 二.Mycat安装 三.mycat实验数据 四.mycat垂直分库 五.mycat水平分库 六.mycat全局自增 七.mycat-ER分片 一 ...

  4. 终于!我们把 CEO 炒了,让 ChatGPT 出任 CEO

    ️ FBI Warning:本文纯属作者自娱自乐,数字人的观点不代表 CEO 本人的观点,请大家不要上当受骗!! 哪个公司的 CEO 不想拥有一个自己的数字克隆? 想象一下,如果 CEO 数字克隆上线 ...

  5. STM32CubeMX教程22 FSMC - 8080并行接口TFT-LCD驱动

    1.准备材料 开发板(正点原子stm32f407探索者开发板V2.4) STM32CubeMX软件(Version 6.10.0) 野火DAP仿真器 keil µVision5 IDE(MDK-Arm ...

  6. JMS 服务器健康检查

    JMS所有服务器程序,包括Gateway.GatewayReferee.Proxy.TokenServer.以及编写的微服务器,都支持使用第三方工具进行健康检查. 使用telnet 进行健康检查 向任 ...

  7. Oracle数据类型的简单学习之一

    Oracle数据类型的简单学习之一 背景 因为信创安可替代的发展 有很多项目提到了数据库切换到国产数据库的要求. 一般情况是要求从Oracle/SQLServer 迁移到国产的: 达梦/瀚高/人大金仓 ...

  8. [转帖]AMD处理器ZEN一代之国产化海光

    https://huataihuang.gitbook.io/cloud-atlas-draft/os/linux/kernel/cpu/amd_hygon   2020年国产化处理器受到了广泛的关注 ...

  9. [转帖]鲲鹏性能优化十板斧——鲲鹏处理器NUMA简介与性能调优五步法

    https://www.cnblogs.com/huaweicloud/p/12166354.html 1.1 鲲鹏处理器NUMA简介 随着现代社会信息化.智能化的飞速发展,越来越多的设备接入互联网. ...

  10. [转帖]fio工具中的iodepth参数与numjobs参数-对测试结果的影响

    测试环境 3台服务器:ceph配置内外网分离,外网使用万兆线,内网使用千兆线,osd共21个. 1台客户端:安装fio工具.内核客户端,使用万兆线. 测试目的 针对fio工具中的iodepth(队列深 ...