亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

運行起來無報錯,結果也不顯示


#!/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]}

}


正在回答

4 回答

沒有調用函數

0 回復 有任何疑惑可以回復我~
#!/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之前的都沒問題,但是就是沒反應

0 回復 有任何疑惑可以回復我~
#1

木貍克

把函數部分的格式注釋掉就可以了 #Chack_http_status() #{ ....... #}
2016-05-29 回復 有任何疑惑可以回復我~
#2

JustHomel 回復 木貍克

第15行提示報錯,“(” unexpected expecting "{" 請教一下什么意思啊?
2016-11-11 回復 有任何疑惑可以回復我~

我也和你同樣的問題,不知道你解決了沒有?

0 回復 有任何疑惑可以回復我~

估計你的apache access.log格式有點區別,因為HTTP\/1\.[0|1]\"[[:blank:]][0-9]{3}這只能匹配這樣"HTTP/1.1" 200"

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

運行起來無報錯,結果也不顯示

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號