命令统计nginx日志

nginx的日志格式可能有多种多样,本文举例的nginx日志格式为:

http {
# …
log_format main '[] $remote_addr - remoteuser[remote_user [remoteuser[time_local] “KaTeX parse error: Double superscript at position 36: … '̲status bodybytessent"body_bytes_sent "bodybytessent"http_referer” ’
‘“httpuseragent""http_user_agent" "httpuseragent""http_x_forwarded_for”’;
# …
}

我们使用log_format指令来指定日志文件的格式,以$开头的都是变量,这些变量的含义如下:

remoteaddr与remote_addr 与remoteaddrhttp_x_forwarded_for 用以记录客户端的ip地址;
$remote_user :用来记录客户端用户名称;
$time_local : 用来记录访问时间与时区;
$request : 用来记录请求的url与http协议;
$status : 用来记录请求状态;成功是200,
$body_bytes_s ent :记录发送给客户端文件主体内容大小;
$http_referer :用来记录从那个页面链接访问过来的;
$http_user_agent :记录客户端浏览器的相关信息

日志文件内容举例为:
[] 100.116.108.148 - - [13/Jul/2017:00:05:19 +0800] “POST /message/check HTTP/1.0” 200 89 “https://www.example.com/message/add” “Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36” “36.57.161.201”
[] 100.109.253.3 - - [13/Jul/2017:00:12:16 +0800] “GET /statisticDaily/index HTTP/1.0” 200 37374 “https://www.example.com/statisticDaily/index” “Mozilla/5.0 (Linux; Android 5.1.1; vivo Xplay5A Build/LMY47V; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/53.0.2785.49 Mobile MQQBrowser/6.2 TBS/043305 Safari/537.36 MicroMessenger/6.5.10.1080 NetType/WIFI Language/zh_CN” “223.87.234.226”

统计nginx访问量最多的前100个url和频次

grep -E “POST|GET” /data/logs/nginx/2017/07/13/manage.access.log | awk -F ‘"’ ‘{print $2,$3}’ | awk ‘{print $2}’| sort | uniq -c | sort -k1nr | head -100
#输出:频次 请求路径
186405 /
148257 /home
132921 /ucenter/index
80749 /login
60431 /captcha
统计nginx访问状态码非200的前100个url和频次

grep -E “POST|GET” /data/logs/nginx/2017/07/13/manage.access.log | awk -F ‘"’ ‘{print $2,$3}’ | awk ‘{if ($4!=200) {print $4,$1,$2}}’ | sort | uniq -c | sort -k1nr | head -100
#输出:频次 状态 请求方法 请求路径
52573 302 GET /
16730 302 GET /submitlogin
16477 404 GET /apple-touch-icon-precomposed.png
15427 404 GET /apple-touch-icon.png
14408 302 GET /home

统计nginx访问不正常(状态码400+)的前100个url和频次

grep -E “POST|GET” /data/logs/nginx/2017/07/13/manage.access.log | awk -F ‘"’ ‘{print $2,$3}’ | awk ‘{if ($4>=“400”) {print $4,$1,$2}}’ | sort | uniq -c | sort -k1nr | head -100
#输出:频次 状态码 请求方法 请求路径
16401 404 GET /apple-touch-icon-precomposed.png
15483 404 GET /apple-touch-icon.png
6512 404 GET /apple-touch-icon-120x120-precomposed.png
5743 404 GET /apple-touch-icon-120x120.png
4118 499 POST /statisticTrade/rechargeDetail

统计nginx访问频次最高的100个Ip
grep -E “POST|GET” /data/logs/nginx/2017/07/13/manage.access.log | awk -F ‘"’ ‘{print $(NF-1)}’ | sort | uniq -c | sort -k1nr | head -100
#输出: 频次 ip
408982 111.127.132.32
252175 120.41.162.180
170169 61.148.196.162
168990 59.173.42.117
103752 123.116.99.75

uniq -c 命令输出统计词频
sort -k1nr 解释: -k指定以那个列排序 1表示第一列 n表示使用数字而非文本排序 r表示倒序

该文档【OpenCV图像分割优化方案详解:基于分水岭算法与形态学后处理的区域精确划分设计】共计 316 页,共50个大章节,文档支持目录章节跳转同时还支持阅读器左侧书签大纲显示和章节快速定位,文档内容完整、条理清晰。文档内所有文字、图表、目录等元素均显示正常,无任何异常情况,敬请您放心查阅与使用。文档仅供学习参考,请勿用作商业用途。文档前19个章节内容:【引言:图像分割技术的核心挑战与分水岭算法的破局价值、图像分割技术基石:从像素级划分到区域精确划分的演进逻辑、分水岭算法原理解析:从地理水文模型到图像分割的映射机制、传统分水岭算法的痛点:过分割现象的成因与数学表达、基于OpenCV的分水岭算法基础实现:环境配置与核心函数调用流程、图像预处理的关键作用:降噪操作对分水岭分割精度的影响机制、高斯滤波在预处理中的应用:核大小参数与分割效果的量化关系、中值滤波的抗噪优势:在椒盐噪声场景下的分水岭优化实践、边缘检测与分水岭的协同:Canny算子参数调优与区域边界强化、图像灰度化处理的必要性:色彩信息剔除对分割效率的提升策略、阈值分割的预处理价值:Otsu算法自动阈值与手动阈值的对比实验、二值化图像的形态学基础:前景与背景区域的初步界定方法、形态学操作核心概念:腐蚀与膨胀的数学形态学定义及OpenCV实现、腐蚀操作对噪声点的消除:迭代次数与目标区域完整性的平衡技巧、膨胀操作对区域连接的修复:结构元素选择与边界扩张程度控制、开运算与闭运算的组合应用:先腐蚀后膨胀的噪声过滤最佳实践、形态学梯度运算:提取区域边界的关键步骤与参数配置、顶帽变换与底帽变换:在光照不均图像中的预处理优化方案、距离变换的核心原理:从二值图像到前景区域中心距离的计算方法】。更多精品资源请访问 https://blog.csdn.net/ashyyyy/article/details/146464041
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Rio520

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值