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...