1. 简介
通过下面的nginx访问日志,统计接口/user/list 非200状态的数量
nginx.access.log
2020-12-30 www.easyswoole.com 127.0.0.1 /user/get 200
2020-12-30 www.easyswoole.com 127.0.0.1 /user/list 200
2020-12-30 www.easyswoole.com 127.0.0.1 /user/list?page=1&page_size=10 200
2020-12-30 www.easyswoole.com 127.0.0.1 /user/list 200
2020-12-30 www.easyswoole.com 127.0.0.1 /user/list 200
2020-12-30 www.easyswoole.com 127.0.0.1 /user/list 301
2. 思路
通过awk拿到状态码一列
$5 代表的就是第五列
➜ akw awk '{printf $5"\n"}' nginx.access.log
200
200
200
200
200
301
判断状态码是否非200
➜ akw awk '{if($5!=200) print $5"\n"}' nginx.access.log
301
状态码非200的输出接口信息
➜ akw awk '{if($5!=200) print $4}' nginx.access.log
/user/list
通过grep将接口过滤
➜ akw awk '{if($5!=200) print $4}' nginx.access.log | grep /user/list
/user/list
通过wc -l 统计行数
➜ akw awk '{if($5!=200) print $4}' nginx.access.log | grep /user/list | wc -l
1