j1.获取nginx 日志访问状态码;
(1).脚本实例;
#/bin/bash
resettem=$(tput sgr0)Logfile_path='/var/log/nginx/access.log'#grep -ioE "HTTP\/1\.[1|0]\"[[:blank:]][0-9]{3}" nginx_app.api.zhaoyifen.ssl.logcheck_status_codes(){http_status_codes=(`cat $Logfile_path |grep -ioE "HTTP\/1\.[1|0]\"[[:blank:]][0-9]{3}" |awk -F"[ ]+" '{ if($2>=100&&$2<200) {i++} else if($2>=200&&$2<300) {j++} else if($2>=300&&$2<400) {k++} else if($2>=400&&$2<500) {n++} else if($2>=500) {p++} }END{ print i?i:0,j?j:0,k?k:0,n?n:0,p?p:0,i+j+k+n+p }' `) echo -e '\E[34m'"The number of http status [100+]:" ${resettem} ${http_status_codes[0]} echo -e '\E[34m'"The number of http status [200+]:" ${resettem} ${http_status_codes[1]} echo -e '\E[34m'"The number of http status [300+]:" ${resettem} ${http_status_codes[2]} echo -e '\E[34m'"The number of http status [400+]:" ${resettem} ${http_status_codes[3]} echo -e '\E[34m'"The number of http status [500+]:" ${resettem} ${http_status_codes[4]} echo -e '\E[34m'"ALL request numbers:" ${resettem} ${http_status_codes[5]} }check_status_codes
(2).脚本执行系统消耗时长;
(3).简单优化实例;
#/bin/bashresettem=$(tput sgr0)Logfile_path='/var/log/nginx/access.log'#grep -ioE "HTTP\/1\.[1|0]\"[[:blank:]][0-9]{3}" nginx_app.api.zhaoyifen.ssl.logcheck_status_codes(){http_status_codes=(`grep -ioE "HTTP\/1\.[1|0]\"[[:blank:]][0-9]{3}" $Logfile_path |awk -F"[ ]+" '{ if($2>=100&&$2<200) {i++} else if($2>=200&&$2<300) {j++} else if($2>=300&&$2<400) {k++} else if($2>=400&&$2<500) {n++} else if($2>=500) {p++} }END{ print i?i:0,j?j:0,k?k:0,n?n:0,p?p:0,i+j+k+n+p }' `) echo -e '\E[33m'"The number of http status [100+]:" ${resettem} ${http_status_codes[0]} echo -e '\E[33m'"The number of http status [200+]:" ${resettem} ${http_status_codes[1]} echo -e '\E[33m'"The number of http status [300+]:" ${resettem} ${http_status_codes[2]} echo -e '\E[33m'"The number of http status [400+]:" ${resettem} ${http_status_codes[3]} echo -e '\E[33m'"The number of http status [500+]:" ${resettem} ${http_status_codes[4]} echo -e '\E[33m'"ALL request numbers:" ${resettem} ${http_status_codes[5]} }check_status_codes
(4).脚本执行系统消耗时长;
2.shell 获取 nginx 日志 403 和 404 状态码;
(1).脚本实例;
Check_Http_Code(){ Http_Code=(`grep -ioE "HTTP\/1\.[1|0]\"[[:blank:]][0-9]{3}" $Logfile_path|awk -v total=0 -F '[ ]+' ' { if ($2!="") {code[$2]++;total++} else {exit} }END { print code[404]?code[404]:0,code[403]?code[403]:0,total}' `) echo -e '\E[33m'"The number of http status [404]:" ${resettem} ${Http_Code[0]} echo -e '\E[33m'"The number of http status [403+]:" ${resettem} ${Http_Code[1]} echo -e '\E[33m'"The ALL request numbers:" ${resettem} ${Http_Code[2]} }Check_Http_Code
(2).脚本执行系统消耗时长;