可用awk來統計固定格式日誌裡的一些資料,如日誌**現過所有不同的ip
awk對檔案進行流處理,每次讀取一行。$1就是ip,count[i]++是將ip作為乙個陣列的下標,並且使得統計這個ip所對應的陣列元素自增1.end後面的語句是列印結果,只執行一次。
也可以用來找出訪問次數最多的ip。
awk ' end ' 日誌檔案 | sort -n | tail -n 10 #用tail顯示最後10行
首先用awk統計出來乙個列表,然後用sort進行排序,最後用tail取最後的10個。
以上引數可以略作修改顯示更多的資料,比如將tail加上-n引數等,另外日誌格式不同命令也可能需要稍作修改。
當前web伺服器中聯接次數最多的ip位址
netstat -ntu |awk '' |sort | uniq -c| sort -nr
檢視日誌中訪問次數最多的前10個ip
cat access_log |cut -d ' ' -f 1 | sort |uniq -c | sort -nr | awk '' | head -n 10 | less
檢視日誌**現100次以上的ip
cat access_log |cut -d ' ' -f 1 | sort |uniq -c | awk ''|sort -nr | less
檢視最近訪問量最高的檔案
cat access_log | tail -10000 | awk '' | sort | uniq -c | sort -nr | less
檢視日誌中訪問超過100次的頁面
cat access_log | cut -d ' ' -f 7 | sort |uniq -c | awk '' | less
統計某url,一天的訪問次數
cat access_log | grep '12/aug/2009' | grep '/images/index/e1.gif' | wc | awk ''
前五天的訪問次數最多的網頁
cat access_log | awk '' | uniq -c | sort -n -r | head -20
從日誌裡檢視該ip在幹嘛
cat access_log | grep 218.66.36.119 | awk '' | sort | uniq -c | sort -nr | less
列出傳輸時間超過 30 秒的檔案
cat access_log | awk '($nf > 30)' | sort -n | uniq -c | sort -nr | head -20
列出最最耗時的頁面(超過60秒的)
cat access_log | awk '($nf > 60 && $7~/.php/)' | sort -n | uniq -c | sort -nr | head -100
awk 獲取ip位址的學習
請執行命令取出linux中eth0的ip位址 請用cut,有能力者也可分別用awk,sed命令答 解答 方法一 此法為綠葉 如果用awk來處理的話,一般的同學可能會用下面的辦法實現 root oldboy ifconfig eth0 grep inet addr awk f awk 10.0.0.1...
Linux中awk統計ip訪問次數
現在有乙個檔案,資料量大概在200多萬條記錄,想用shell的awk做統計,檔案的格式如下 關鍵字 url ip位址 test 123 1 test 123 1 test 123 2 test2 12 1 test2 123 1 test2 123 2 現在想要統計的結果是 檢視同乙個關鍵字和url...
查詢IP區段
using system 2using system.collections.generic 3using system.text 4using system.net 56namespace iputility723 2425 2627 public class iprange 28 41 set ...