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