http狀態碼
1字頭----信息,服務器收到請求,須要請求者繼續執行操做
2字頭----成功,操做被成功接收並處理
3字頭----重定向,須要進一步的操做以完成請求
4字頭----客戶端錯誤,請求包含語法錯誤或沒法完成請求
5字頭----服務器錯誤,服務器在處理請求的過程當中發生了錯誤
應用日誌分析腳本
cat /usr/local/nginx/logs/access.log | awk '{print $1}' | sort | uniq -c | sort -rn
sort
選項與參數:
-f :忽略大小寫的差別,例如 A 與 a 視爲編碼相同;
-b :忽略最前面的空格符部分;
-M :以月份的名字來排序,例如 JAN, DEC 等等的排序方法;
-n :使用『純數字』進行排序(默認是以文字型態來排序的);
-r :反向排序;
-u :就是 uniq ,相同的數據中,僅出現一行表明;
-t :分隔符,默認是用 [tab] 鍵來分隔;
-k :以那個區間 (field) 來進行排序的意思
uniq
選項與參數:
-i :忽略大小寫字符的不一樣;
-c :進行計數
-u :只顯示惟一的行
提取狀態碼
cat /usr/local/nginx/logs/access.log | awk '{print $9}'
提取想要的信息
cat /usr/local/nginx/logs/access.log | grep -ioE "HTTP\/1\.[1|0]\"[[:blank:]][0-9]{3}"
grep參數詳解
-i 忽略大小寫
-o 只輸出文件中匹配到的部分
-E 進行精確的
特殊符號 表明意義
[:alnum:] 表明英文大小寫字節及數字,亦即 0-9, A-Z, a-z
[:alpha:] 表明任何英文大小寫字節,亦即 A-Z, a-z
[:blank:] 表明空白鍵與 [Tab] 按鍵二者
[:cntrl:] 表明鍵盤上面的控制按鍵,亦即包括 CR, LF, Tab, Del.. 等等
[:digit:] 表明數字而已,亦即 0-9
[:graph:] 除了空白字節 (空白鍵與 [Tab] 按鍵) 外的其餘全部按鍵
[:lower:] 表明小寫字節,亦即 a-z
[:print:] 表明任何能夠被列印出來的字節
[:punct:] 表明標點符號 (punctuation symbol),亦即:" ' ? ! ; : # $...
[:upper:] 表明大寫字節,亦即 A-Z
[:space:] 任何會產生空白的字節,包括空白鍵, [Tab], CR 等等
[:xdigit:] 表明 16 進位的數字類型,所以包括: 0-9, A-F, a-f 的數字與字節nginx