用shell實現(xiàn)統(tǒng)計nginx日志中出現(xiàn)次數(shù)最多的前k個ip?
答
awk '{print $1}' logfile | sort | uniq -c | sort -nr -k1 | head -n 10?
#說明: awk '{print $1}' # 取數(shù)據(jù)的低1域?
sort # 對ip進(jìn)行排序, ip相同的在一起?
uniq -c # 打印每重復(fù)行出現(xiàn)的次數(shù)?
sort -nr -k1 # 按次數(shù)倒序排序, 以第一列為標(biāo)準(zhǔn)排序
IP相關(guān)統(tǒng)計
統(tǒng)計IP訪問量(獨立ip訪問數(shù)量)

awk'{print $1}'access.log |sort-n |uniq|wc-l
查看某一時間段的IP訪問量(4-5點)
grep"07/Apr/2017:0[4-5]"access.log |awk'{print $1}'|sort|uniq-c|sort-nr |wc-l
查看訪問最頻繁的前100個IP
awk'{print $1}'access.log |sort-n |uniq-c |sort-rn |head-n100
查看訪問100次以上的IP
awk'{print $1}'access.log |sort-n |uniq-c |awk'{if($1 >100) print $0}'|sort-rn
查詢某個IP的詳細(xì)訪問情況,按訪問頻率排序
grep'127.0.01'access.log |awk'{print $7}'|sort|uniq-c |sort-rn |head-n100
頁面訪問統(tǒng)計

查看訪問最頻的頁面(TOP100)
awk'{print $7}'access.log |sort|uniq-c |sort-rn |head-n100
查看訪問最頻的頁面([排除php頁面】(TOP100)
grep-v".php"access.log |awk'{print $7}'|sort|uniq-c |sort-rn |head-n100
查看頁面訪問次數(shù)超過100次的頁面
cataccess.log |cut-d''-f7|sort|uniq-c |awk'{if ($1 > 100) print $0}'|less
查看最近1000條記錄,訪問量最高的頁面
tail-1000access.log |awk'{print $7}'|sort|uniq-c|sort-nr|less
每秒請求量統(tǒng)計
統(tǒng)計每秒的請求數(shù),top100的時間點(精確到秒)
awk'{print $4}'access.log |cut-c14-21|sort|uniq-c|sort-nr|head-n100
每分鐘請求量統(tǒng)計
統(tǒng)計每分鐘的請求數(shù),top100的時間點(精確到分鐘)
awk'{print $4}'access.log |cut-c14-18|sort|uniq-c|sort-nr|head-n100
每小時請求量統(tǒng)計
統(tǒng)計每小時的請求數(shù),top100的時間點(精確到小時)
awk'{print $4}'access.log |cut-c14-15|sort|uniq-c|sort-nr|head-n100
性能分析

在nginx log中最后一個字段加入$request_time
列出傳輸時間超過 3 秒的頁面,顯示前20條
cataccess.log|awk'($NF > 3){print $7}'|sort-n|uniq-c|sort-nr|head-20
列出php頁面請求時間超過3秒的頁面,并統(tǒng)計其出現(xiàn)的次數(shù),顯示前100條
cataccess.log|awk'($NF > 1 &&? $7~/\.php/){print $7}'|sort-n|uniq-c|sort-nr|head-100
蜘蛛抓取統(tǒng)計
統(tǒng)計蜘蛛抓取次數(shù)
grep'Baiduspider'access.log |wc-l
統(tǒng)計蜘蛛抓取404的次數(shù)
grep'Baiduspider'access.log |grep'404'|wc-l
TCP連接統(tǒng)計
查看當(dāng)前TCP連接數(shù)
netstat -tan |grep"ESTABLISHED"|grep":80"|wc-l
用tcpdump嗅探80端口的訪問看看誰最高
tcpdump -i eth0 -tnn dst port80-c1000|awk-F"."'{print $1"."$2"."$3"."$4}'|sort|uniq-c |sort-nr