運行起來無報錯,結果也不顯示
#!/bin/bash
resrttem=$(tput sgr0)
LOGFILE='/usr/local/apache2.4/logs/access.log'
Check_http_status()
{
http_status_codes=(`cat $LOGFILE|grep -ioE "HTTP\/1\.[0|1]\"[[: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)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? {l++}
? ? ? ? ? ? ? ? ? ? ? ? else ? ?if($2>=500)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? {n++}
? ? ? ? ? ? ? ? ? ? ? ? }END{
? ? ? ? ? ? ? ? ? ? ? ? print i?i:0,j?j:0,k?k:0,l?l:0,n?n:0,i+j+k+l+n
? ? ? ? ? ? ? ? ? ? ? ? }'
? ? ? ? ? ? ? ? ? ? ? ? `)
echo -e '\E[33m' "HTTP狀態[100+] :" ${resrttem} ${http_status_codes[0]}
echo -e '\E[33m' "HTTP狀態[200+] :" ${resrttem} ${http_status_codes[1]}
echo -e '\E[33m' "HTTP狀態[300+] :" ${resrttem} ${http_status_codes[2]}
echo -e '\E[33m' "HTTP狀態[400+] :" ${resrttem} ${http_status_codes[3]}
echo -e '\e[33m' "HTTP狀態[500+] :" ${resrttem} ${http_status_codes[4]}
echo -e '\e[33m' "HTTP全部狀態 ? :" ${resrttem} ${http_status_codes[5]}
}
2017-06-04
沒有調用函數
2016-05-29
#!/bin/bash #腳本實現功能介紹 ?#功能一:分析HTTP狀態碼在100-200、200-300、300-400-400-500、500以上的,五個區間的請求條數 ?#功能二:分析日志中HTTP狀態碼為404、500的請求條數 ? #Program?function:log?analysis resettem=$(tput?sgr0) Logfile_path='/usr/local/apache2/logs/access_log' Chack_http_status() { Http_status_codes=(`cat?$Logfile_path|grep?-ioE?"HTTP\/1\.[1|0]\"[[:space:]][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) ??????{m++} ????else?if($2>=500) ??????{n++} ????}END{ ????print?i?i:0,j?j:0,k?k:0,m?m:0,n?n:0,i+j+k+m+n ????}' ????`) 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?number:?"?${resettem}?${Http_status_codes[5]}我的代碼是這樣的,單獨運行awk之前的都沒問題,但是就是沒反應
2016-05-29
我也和你同樣的問題,不知道你解決了沒有?
2016-05-28
估計你的apache access.log格式有點區別,因為HTTP\/1\.[0|1]\"[[:blank:]][0-9]{3}這只能匹配這樣"HTTP/1.1" 200"