查看 apache 進程
ps aux | grep httpd | grep -v grep | wc -lphp
查看 80 端口的 tcp 鏈接
netstat -tan | grep "ESTABLISHED" | grep ":80" | wc -lapache
用 tcpdump 嗅探 80 端口的訪問看看誰最高
tcpdump -i eth0 -tnn dst port 80 -c 1000 | awk -F"." '{print $1"."$2"."$3"."$4}' | sort | uniq -c | sort -nr服務器
查看某一時間段的 ip 鏈接
grep "2014:0[7-8]" www20110519.log | awk '{print $2}' | sort | uniq -c | sort -nr | wc -l併發
當前 WEB 服務器中聯接次數最多的 20 條 ip 地址
netstat -ntu | awk '{print $5}' | sort | uniq -c | sort -n -r | head -n 20less
查看日誌中訪問次數最多的前 10 個 IP
awk '{print $1}' access.log | sort | uniq -c | sort -nr | head -n 10tcp
查看最近訪問量最高的文件
cat access_log |tail -10000|awk '{print $7}'|sort|uniq -c|sort -nr|less網站
cat access.log | grep '2015' | awk '{print $7}'| sort | uniq -c | sort -nr | head -200spa
列出傳輸時間超過 30 秒的文件
cat access_log|awk '($NF> 30){print $7}'|sort -n|uniq -c|sort -nr|head -20日誌
列出最最耗時的頁面 (超過 60 秒的) 的以及對應頁面發生次數
cat access_log |awk '($NF> 60 && $7~//.php/){print $7}'|sort -n|uniq -c|sort -nr|head -100排序
查找請求數最多的 20 個 IP(經常使用於查找攻來源)
netstat -anlp|grep 80|grep tcp|awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -nr|head -n20
用 tcpdump 嗅探 80 端口的訪問看看誰最高
tcpdump -i eth0 -tnn dst port 80 -c 1000 | awk -F"." '{print $1"."$2"."$3"."$4}' | sort | uniq -c | sort -nr |head -20
查找較多 time_wait 鏈接
netstat -n|grep TIME_WAIT|awk '{print $5}'|sort|uniq -c|sort -rn|head -n20
找查較多的 SYN 鏈接
netstat -an | grep SYN | awk '{print $5}' | awk -F: '{print $1}' | sort | uniq -c | sort -nr | more
分析日誌文件下 2012-05-04 訪問頁面最高的前20個URL並排序
cat access.log |grep '04/May/2012′| awk '{print $11}'|sort|uniq -c|sort -nr|head -20
查詢受訪問頁面的 URL 地址中 含有 www.abc.com 網址的 IP 地址
cat access_log | awk '($11~/\www.abc.com/){print $1}'|sort|uniq -c|sort -nr
訪問次數最多的文件或頁面, 取前 20 及統計全部訪問 IP
cat access.log|awk '{print $11}'|sort|uniq -c|sort -nr|head -20
awk '{print $1}' access.log |sort -n -r |uniq -c|wc -l
查詢日誌中時間段內的狀況
cat wangsu.log | egrep '06/Sep/2012:14:35|06/Sep/2012:15:05′ |awk '{print $1}'|sort|uniq -c|sort -nr|head -10
列出傳輸最大的幾個 exe 文件(分析下載站的時候經常使用)
cat access.log |awk '($7~/\.exe/){print $10" " $1 " " $4 " " $7}'|sort -nr|head -20
列出輸出大於 200000byte(約 200kb) 的 exe 文件以及對應文件發生次數
cat access.log |awk '($10> 200000 && $7~/\.exe/){print $7}'|sort -n|uniq -c|sort -nr|head -100
若是日誌最後一列記錄的是頁面文件傳輸時間,則有列出到客戶端最耗時的頁面
cat access.log |awk '($7~/\.php/){print $NF" " $1 " " $4 " " $7}'|sort -nr|head -100
列出最最耗時的頁面 (超過 60 秒的) 的以及對應頁面發生次數
cat access.log |awk '($NF> 60 && $7~/\.php/){print $7}'|sort -n|uniq -c|sort -nr|head -100
列出傳輸時間超過 30 秒的文件
cat access.log |awk '($NF> 30){print $7}'|sort -n|uniq -c|sort -nr|head -20
統計網站流量(G)
cat access.log |awk '{sum+=$10} END {print sum/1024/1024/1024}'
統計 404 的鏈接
awk '($9 ~/404/)' access.log | awk '{print $9,$7}' | sort
統計 http status
cat access.log |awk '{print $9}'|sort|uniq -c|sort -rn
每秒併發:(顯示前十)
cat access.log | awk '{if($9~/200|206|404/)COUNT[$4]++}END{for( a in COUNT) print a,COUNT[a]}'|sort -k 2 -nr|head -n 10
帶寬統計
cat access.log |awk '{if($7~/GET/) count++}END{print"client_request="count}'
cat access.log |awk '{BYTE+=$11}END{print"client_kbyte_out="BYTE/1024"KB"}'
當天 ip 鏈接數最高的 ip 都在幹些什麼:
cat access.log | grep "10.0.21.17" | awk '{print $11}' | sort | uniq -c | sort -nr | head -n 10
查看 Apache 的併發請求數及其 TCP 鏈接狀態:
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
其餘查看 tcp 鏈接狀態:
netstat -nat |awk '{print $6}'|sort|uniq -c|sort -rn
sort
sort 命令將逐行對指定文件中的全部行進行排序,並將結果顯示在標準輸出上。若是不指定文件或者使用 「一」
表示文件,則排序內容來自標準輸入。排序比較是依據從輸入文件的每一行中提取的一個或多個排序關鍵字進
行的。排序關鍵字定義了用來排序的最小的字符序列。
選項:
-nr 按照數字進行倒敘排序。
-m 對己經排好序的文件統一進行合併,但不作排序。
-c 檢查給定的文件是否己排好序,若沒有,則顯示出錯消息,不作排序。
-u 與 -c 選項一塊兒用,嚴格地按順序檢查;不然,對排序後的重複行只輸出第一行。
-o 文件名 將排序輸出放到該文件名所指定的文件中。若是該文件不存在,則建立一個新文件。
改變排序規則的選項主要有:
-d 按字典順序排序,比較時僅考慮空白符和字母數字符。
-f 忽略字母的大小寫。
-i 忽略非打印字符。
-M 規定月份的比較次序是(未知)<」JAN」<」FEB」<…<」DEC」。
-r 按逆序排序。默認排序輸出是按升序排序的。
-k n1[,n2] 指定從文本行的第 n1 字段開始至第 n2 字段(不包括第 n2 字段)中間的內容做爲排序關鍵字。若是沒有 n2,則關鍵字是從第 n1 個字段到行尾的全部字段。n1 和 n2 能夠是小數形式。如 」x.y」,x 表示第 x 字段,y 表示第 x 字段中的第 y 個字符。字段和字符的文職都是從 1 開始算起的。
-b 比較關鍵字時忽略前導的空白符(空格或製表符)。
-t 字符將指定的 「字符」 做爲字段間的分隔符。
uniq[選項] 文件
說明:uniq 命令讀取輸入文件,並比較相鄰的行,去掉重複的行一行。該命令加工後的結果寫到輸出文件中。
輸入文件和輸出文件必須不一樣。用 「一」 表示,則從標準輸入上讀取。
選項:
-c 顯示輸出時,在每行的行首加上該行在文件中出現的次數。合併重複的行,並記錄重複次數。
-d 只顯示重複行。
-f –skip-fields=N 忽略比較前 N 個字段。
-s –skip-chars=N 忽略比較前 N 個字段。
-u 只顯示文件中不重複的行。