前言
- 在工作中总能遇到一些情况要从access_log中去拿一些数据,有时候从log中统计出一些请求时间过长的接口,需要拿去优化,有的需要统计出一些频繁请求的接口是否存在异常,需不需要针对ip进行拦截,accesslog中有着详细的数据,客户端的ip 请求的接口 是否请求成功 ,响应时间 请求参数,等一些数据,这些数据有可能在开发的时候是很少被用到的,但是项目上线后,难免不被使用到.
- 我看到过用利用accesslog 整理出一些请求时间过长的接口,拿去优化和检查,一些接口被恶意请求,统计出log中的ip针对ip进行拦截,在app审核的时候,整理出审核人员在审核时访问过哪些接口,等等一些稀奇古怪的操作
现在将针对accesslog的一些操作记录下来,方便以后使用,具体的使用要根据 每个位置存储的哪些数据而定
具体使用
统计出log中访问量前十的ip并从多到少排序 (其中$1是只客户端ip的位置)
cat access.log | awk '{print $1}' |sort |uniq -c|sort -n -r |head -10
统计某个接口的访问次数
cat access.log |grep '/index/login' |wc -l
从日志中查看 某个ip请求了哪些接口
cat access.log | gre 192.168.1.1 | awk '{print $1 "\t" $7} |sort |uniq -c |sort -nr
从日志中找出响应时间超过60秒的接口前一百的接口
cat access.log|awk '($NF > 60){print $7}'|sort -n|uniq -c |sort -nr|head -100
