awk對apache日誌訪問的處理

2021-10-04 17:00:14 字數 1709 閱讀 3003

awk名稱**於他的創始人姓氏的首字母(alfred aho、peter weinberger和brian kernighan),awk是乙個強大的文字分析工具,相對於grep的查詢,sed的編輯,awk在其對資料分析並產生報告時顯得尤為強大。

awk其實是一門程式語言,它支援條件判斷、陣列、迴圈等功能。所以我們也可以將awk理解成乙個指令碼語言直譯器

awk [options] 'script' var=value file(s)

awk [options] -f scriptfile var=value file(s)

1.-f fs fs指定輸入分隔符,fs可以是字串或者正規表示式

2.-v var=vaule 符值乙個使用者自定義變數,將外部變數傳給awk

3.-f scriptfile 從指令碼檔案讀取awk

4.-m[fr] val 對val值設定內在限制,-mf選項限制分配給val的最大塊數目;-mr選項限制記錄的最大數目。這兩個共嗯那個是bell實驗室版本awk的擴充套件功能,在標準awk中並不適用

1.當前web伺服器中連線次數最多的ip

netstat -nut | awk '' | sort | uniq -c | sort -nr
2.檢視日誌中訪問次數最多的前10個ip

cat access_log |cut -d ' ' -f 1 |sort |uniq -c | sort -nr | awk '' | head -n 10 |less
3.檢視日誌**現100次以上的ip

cat access_log |cut -d ' ' -f 1 |sort |uniq -c | awk ''|sort -nr |less
4.檢視最近訪問量最高的檔案

cat access_log |tail -10000|awk ''|sort|uniq -c|sort -nr|less
5.檢視日誌中訪問超過100次的頁面

cat access_log | cut -d ' ' -f 7 | sort |uniq -c | awk '' | less
6.統計某url,一天的訪問次數

cat access_log|grep '12/aug/2009'|grep '/images/index/e1.gif'|wc|awk ''
7.前五天的訪問次數最多的網頁

cat access_log|awk ''|uniq -c |sort -n -r|head -20
8.從日誌檢視某個ip都在做什麼

cat access_log | grep 218.66.36.119| awk '' | sort | uniq -c | sort -nr | less
9.列出傳輸時間超過30秒的檔案

cat access_log|awk '($nf > 30)' |sort -n|uniq -c|sort -nr|head -20
10.列出最耗上時間的頁面(超過60秒)

cat access_log |awk '($nf > 60 && $7~/\.php/)' |sort -n|uniq -c|sort -nr|head -100

Awk 等工具對apache 訪問日誌中各種處理

apache日誌分析可以獲得很多有用的資訊,現在來試試最基本的,獲取最多訪問的前10個ip位址及訪問次數。既然是統計,那麼awk是必不可少的,好用而高效。命令如下 awk end 日誌檔案 sort n tail 首先用awk統計出來乙個列表,然後用sort進行排序,最後用tail取最後的10個。以...

Apache 訪問日誌管理

大多元素為靜態檔案,如 css js等,這些元素可以不用記錄到訪問日誌中。測試結果 使用curl訪問png等格式檔案時日誌不會記錄訪問資訊。訪問其它格式仍然會記錄訪問資訊。使用瀏覽器訪問亦如此。日誌一直記錄總有一天會把整個磁碟佔滿,所以有必要讓它自動切割,並刪除老的日誌檔案。說明 rotatelog...

Awk分析nginx訪問日誌

awk是linux系統下乙個處理文字的程式語言工具,能用簡短的程式處理標準輸入或檔案 資料排序 計算以及生成報表等等,應用非常廣泛。預設日誌格式 remote addr remote user time local request status body bytes sent http refere...