shell分析nginx日志

在做服务端的过程中,经常需要分析日志的数据,使用专业的工具又没有必要。使用shell分析日志是一个不错的选择,这里涉及的命令包括grep,zgrep,cat,zcat, xargs。

grep和zgrep

grep和zgrep都是用来在文件中查询文本,其中grep对应普通的文本文件,而zgrep对应是.gz的压缩文件。

grep -nr "world" *.log
zgrep -e "GET /api" *.gz

cat和zcat

cat和zcat可以将文件的内容输出,cat对应不同文件,zcat对应压缩文件。

cat access.log | more
zcat access.1.gz | more

日志分析

先看下面这个命令

ls *access*.gz | xargs -I {} zgrep -E "/api/recommend.+utm_source=worlds[1|3|5|6|7|8]?" {} | grep "22/Feb/2020" | wc -l 

功能统计API接口的在2020.2.22的访问次数。

sed和awk

结合这两个命令shell可以做更复杂的日志分析。
一些例子:

#查看当天访问页面排前10的
$ grep -rn   access.log | awk '{print $7}' | sort | uniq -c | sort -nr | head -n 10
#当天ip连接数,统计ip地址的总连接数
$ grep -rn   access.log | awk '{print $1}' | sort | uniq -c | sort  -nr 
#统计安卓或iPhone访问次数
grep -rn   access.log|grep iPhone |awk '{print $1}'|sort |uniq -c|sort -nr
5.0
01
Curl命令来访问Elasticsearch?
js兼容性查询网站:caniuse
嘻嘻

嘻嘻IT: 笔者是一个工作七八年的程序猿老鸟,从事涉及的技术栈主要包括PHP、Linux、Devops等,喜欢研究新技术,尝试新技术,提升技术自动化和开发效率,致力于write less,do more! 技术每年都会层出不穷,领域划分的越来越细,不可能学习所有的东西,保持对技术的好奇心,理解技术中核心思想,做一个有深度,有思想的开发!

Recent Posts

Replit是一个强大的在线集成AI开发环境

Replit是一个强大的在线集…

17小时 ago

AutoLink一款SEO策略AI优化工具

AutoLink AI为内部链…

17小时 ago

wordpress侧边栏酷炫倒计时小工具

每个WordPress站点都值…

18小时 ago

如何在Linux中根据修改日期和时间查找和排序文件

习惯于使用图形用户界面的人可以…

2天 ago

Golang中如何实现PHP中array_fill函数?

PHP中的array_fill…

2天 ago