shell在手分析服務(wù)器日志不愁??

自己的小網(wǎng)站跑在阿里云的ECS上面,偶爾也去分析分析自己網(wǎng)站服務(wù)器日志,看看網(wǎng)站的訪問量》蟠看看有沒有黑闊搞破壞间涵!于是收集,整理一些服務(wù)器日志分析命令榜揖,大家可以試試勾哩!

1抗蠢、查看有多少個(gè)IP訪問:

awk '{print $1}' log_file|sort|uniq|wc -l

2、查看某一個(gè)頁面被訪問的次數(shù):

grep "/index.php" log_file | wc -l

3思劳、查看每一個(gè)IP訪問了多少個(gè)頁面:

awk '{++S[$1]} END {for (a in S) print a,S[a]}' log_file > log.txt

sort -n -t ' ' -k 2 log.txt 配合sort進(jìn)一步排序

4迅矛、將每個(gè)IP訪問的頁面數(shù)進(jìn)行從小到大排序:

awk '{++S[$1]} END {for (a in S) print S[a],a}' log_file | sort -n

5、查看某一個(gè)IP訪問了哪些頁面:

grep ^111.111.111.111 log_file| awk '{print $1,$7}'

6潜叛、去掉搜索引擎統(tǒng)計(jì)的頁面:

awk '{print $12,$1}' log_file | grep ^\"Mozilla | awk '{print $2}' |sort | uniq | wc -l

7秽褒、查看2015年8月16日14時(shí)這一個(gè)小時(shí)內(nèi)有多少IP訪問:

awk '{print $4,$1}' log_file | grep 16/Aug/2015:14 | awk '{print $2}'| sort | uniq | wc -l

8、查看訪問前十個(gè)ip地址

awk '{print $1}' |sort|uniq -c|sort -nr |head -10 access_log

uniq -c 相當(dāng)于分組統(tǒng)計(jì)并把統(tǒng)計(jì)數(shù)放在最前面
cat access.log|awk '{print $1}'|sort|uniq -c|sort -nr|head -10

cat access.log|awk '{counts[$(11)]+=1}; END {for(url in counts) print counts[url], url}

9威兜、訪問次數(shù)最多的10個(gè)文件或頁面

cat log_file|awk '{print $11}'|sort|uniq -c|sort -nr | head -10

cat log_file|awk '{print $11}'|sort|uniq -c|sort -nr|head -20

awk '{print $1}' log_file |sort -n -r |uniq -c | sort -n -r | head -20
訪問量最大的前20個(gè)ip

10销斟、通過子域名訪問次數(shù),依據(jù)referer來計(jì)算椒舵,稍有不準(zhǔn)

cat access.log | awk '{print $11}' | sed -e ' s/http:\/\///' -e ' s/\/.*//' | sort | uniq -c | sort -rn | head -20

11蚂踊、列出傳輸大小最大的幾個(gè)文件

cat www.access.log |awk '($7~/\.php/){print $10 " " $1 " " $4 " " $7}'|sort -nr|head -100

12、列出輸出大于200000byte(約200kb)的頁面以及對(duì)應(yīng)頁面發(fā)生次數(shù)

cat www.access.log |awk '($10 > 200000 && $7~/\.php/){print $7}'|sort -n|uniq -c|sort -nr|head -100

13逮栅、如果日志最后一列記錄的是頁面文件傳輸時(shí)間悴势,則有列出到客戶端最耗時(shí)的頁面

cat www.access.log |awk '($7~/\.php/){print $NF " " $1 " " $4 " " $7}'|sort -nr|head -100

14窗宇、列出最最耗時(shí)的頁面(超過60秒的)的以及對(duì)應(yīng)頁面發(fā)生次數(shù)

cat www.access.log |awk '($NF > 60 && $7~/\.php/){print $7}'|sort -n|uniq -c|sort -nr|head -100

15措伐、列出傳輸時(shí)間超過 30 秒的文件

cat www.access.log |awk '($NF > 30){print $7}'|sort -n|uniq -c|sort -nr|head -20

16、列出當(dāng)前服務(wù)器每一進(jìn)程運(yùn)行的數(shù)量军俊,倒序排列

ps -ef | awk -F ' ' '{print $8 " " $9}' |sort | uniq -c |sort -nr |head -20

17侥加、查看apache當(dāng)前并發(fā)訪問數(shù)

對(duì)比httpd.conf中MaxClients的數(shù)字差距多少
netstat -an | grep ESTABLISHED | wc -l

18、可以使用如下參數(shù)查看數(shù)據(jù)

ps -ef|grep httpd|wc -l

1388
統(tǒng)計(jì)httpd進(jìn)程數(shù)粪躬,連個(gè)請(qǐng)求會(huì)啟動(dòng)一個(gè)進(jìn)程担败,使用于Apache服務(wù)器。
表示Apache能夠處理1388個(gè)并發(fā)請(qǐng)求镰官,這個(gè)值A(chǔ)pache可根據(jù)負(fù)載情況自動(dòng)調(diào)整

netstat -nat|grep -i "80"|wc -l

4341
netstat -an會(huì)打印系統(tǒng)當(dāng)前網(wǎng)絡(luò)鏈接狀態(tài)提前,而grep -i "80"是用來提取與80端口有關(guān)的連接的,wc -l進(jìn)行連接數(shù)統(tǒng)計(jì)泳唠。
最終返回的數(shù)字就是當(dāng)前所有80端口的請(qǐng)求總數(shù)

netstat -na|grep ESTABLISHED|wc -l

376
netstat -an會(huì)打印系統(tǒng)當(dāng)前網(wǎng)絡(luò)鏈接狀態(tài)狈网,而grep ESTABLISHED 提取出已建立連接的信息。 然后wc -l統(tǒng)計(jì)
最終返回的數(shù)字就是當(dāng)前所有80端口的已建立連接的總數(shù)笨腥。

netstat -nat||grep ESTABLISHED|wc

可查看所有建立連接的詳細(xì)記錄

19拓哺、輸出每個(gè)ip的連接數(shù),以及總的各個(gè)狀態(tài)的連接數(shù)
netstat -n | awk '/^tcp/ {n=split($(NF-1),array,":");if(n<=2)++S[array[(1)]];else++S[array[(4)]];++s[$NF];++N} END {for(a in S){printf("%-20s %s\n", a, S[a]);++I}printf("%-20s %s\n","TOTAL_IP",I);for(a in s) printf("%-20s %s\n",a, s[a]);printf("%-20s %s\n","TOTAL_LINK",N);}'

20脖母、其他的收集

分析日志文件下 2012-05-04 訪問頁面最高 的前20個(gè) URL 并排序

cat access.log |grep '04/May/2012'| awk '{print $11}'|sort|uniq -c|sort -nr|head -20

查詢受訪問頁面的URL地址中 含有 www.abc.com 網(wǎng)址的 IP 地址

cat access_log | awk '($11~/\www.abc.com/){print $1}'|sort|uniq -c|sort -nr

獲取訪問最高的10個(gè)IP地址 同時(shí)也可以按時(shí)間來查詢

cat linewow-access.log|awk '{print $1}'|sort|uniq -c|sort -nr|head -10

****時(shí)間段查詢?nèi)罩緯r(shí)間段的情況****

cat log_file | egrep '15/Aug/2015|16/Aug/2015' |awk '{print $1}'|sort|uniq -c|sort -nr|head -10

分析2015/8/15 到 2015/8/16 訪問"/index.php?g=Member&m=Public&a=sendValidCode"的IP倒序排列

cat log_file | egrep '15/Aug/2015|16/Aug/2015' | awk '{if($7 == "/index.php?g=Member&m=Public&a=sendValidCode") print $1,$7}'|sort|uniq -c|sort -nr

($7~/.php/) $7里面包含.php的就輸出,本句的意思是最耗時(shí)的一百個(gè)PHP頁面

cat log_file |awk '($7~/\.php/){print $NF " " $1 " " $4 " " $7}'|sort -nr|head -100

列出最最耗時(shí)的頁面(超過60秒的)的以及對(duì)應(yīng)頁面發(fā)生次數(shù)

cat access.log |awk '($NF > 60 && $7~/\.php/){print $7}'|sort -n|uniq -c|sort -nr|head -100

統(tǒng)計(jì)網(wǎng)站流量(G)

cat access.log |awk '{sum+=$10} END {print sum/1024/1024/1024}'

統(tǒng)計(jì)404的連接

awk '($9 ~/404/)' access.log | awk '{print $9,$7}' | sort

統(tǒng)計(jì)http status

cat access.log |awk '{counts[$(9)]+=1}; END {for(code in counts) print code, counts[code]}'
cat access.log |awk '{print $9}'|sort|uniq -c|sort -rn

每秒并發(fā)

watch "awk '{if($9~/200|30|404/)COUNT[$4]++}END{for( a in COUNT) print a,COUNT[a]}' log_file|sort -k 2 -nr|head -n10"

帶寬統(tǒng)計(jì)

cat apache.log |awk '{if($7~/GET/) count++}END{print "client_request="count}'
cat apache.log |awk '{BYTE+=$11}END{print "client_kbyte_out="BYTE/1024"KB"}'

找出某天訪問次數(shù)最多的10個(gè)IP

cat /tmp/access.log | grep "20/Mar/2011" |awk '{print $3}'|sort |uniq -c|sort -nr|head

當(dāng)天ip連接數(shù)最高的ip都在干些什么

cat access.log | grep "10.0.21.17" | awk '{print $8}' | sort | uniq -c | sort -nr | head -n 10

小時(shí)單位里ip連接數(shù)最多的10個(gè)時(shí)段

awk -vFS="[:]" '{gsub("-.*","",$1);num[$2" "$1]++}END{for(i in num)print i,num[i]}' log_file | sort -n -k 3 -r | head -10

找出訪問次數(shù)最多的幾個(gè)分鐘

awk '{print $1}' access.log | grep "20/Mar/2011" |cut -c 14-18|sort|uniq -c|sort -nr|head
取5分鐘日志
if [ $DATE_MINUTE != $DATE_END_MINUTE ] ;then #則判斷開始時(shí)間戳與結(jié)束時(shí)間戳是否相等
START_LINE=sed -n "/$DATE_MINUTE/=" $APACHE_LOG|head -n1 #如果不相等士鸥,則取出開始時(shí)間戳的行號(hào),與結(jié)束時(shí)間戳的行號(hào)

查看tcp的鏈接狀態(tài)

netstat -nat |awk '{print $6}'|sort|uniq -c|sort -rn 
    
netstat -n | awk '/^tcp/ {++S[$NF]};END {for(a in S) print a, S[a]}' 

netstat -n | awk '/^tcp/ {++state[$NF]}; END {for(key in state) print key,"\t",state[key]}' 
    
netstat -n | awk '/^tcp/ {++arr[$NF]};END {for(k in arr) print k,"\t",arr[k]}' 
    
netstat -n |awk '/^tcp/ {print $NF}'|sort|uniq -c|sort -rn 
    
netstat -ant | awk '{print $NF}' | grep -v '[a-z]' | sort | uniq -c
netstat -ant|awk '/ip:80/{split($5,ip,":");++S[ip[1]]}END{for (a in S) print S[a],a}' |sort -n 
    
netstat -ant|awk '/:80/{split($5,ip,":");++S[ip[1]]}END{for (a in S) print S[a],a}' |sort -rn|head -n 10 
    
awk 'BEGIN{printf ("http_code\tcount_num\n")}{COUNT[$10]++}END{for (a in COUNT) printf a"\t\t"COUNT[a]"\n"}'

查找請(qǐng)求數(shù)前20個(gè)IP(常用于查找攻來源):
netstat -anlp|grep 80|grep tcp|awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -nr|head -n20
netstat -ant |awk '/:80/{split($5,ip,":");++A[ip[1]]}END{for(i in A) print A[i],i}' |sort -rn|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

根據(jù)端口列進(jìn)程
netstat -ntlp | grep 80 | awk '{print $7}' | cut -d/ -f1

查看了連接數(shù)和當(dāng)前的連接數(shù)

netstat -ant | grep $ip:80 | wc -l
netstat -ant | grep $ip:80 | grep EST | wc -l

查看IP訪問次數(shù)
netstat -nat|grep ":80"|awk '{print $5}' |awk -F: '{print $1}' | sort| uniq -c|sort -n

Linux命令分析當(dāng)前的鏈接狀況
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

watch "netstat -n | awk '/^tcp/ {++S[\$NF]} END {for(a in S) print a, S[a]}'" # 通過watch可以一直監(jiān)控

LAST_ACK 5 #關(guān)閉一個(gè)TCP連接需要從兩個(gè)方向上分別進(jìn)行關(guān)閉谆级,雙方都是通過發(fā)送FIN來表示單方向數(shù)據(jù)的關(guān)閉烤礁,當(dāng)通信雙方發(fā)送了最后一個(gè)FIN的時(shí)候讼积,發(fā)送方此時(shí)處于LAST_ACK狀態(tài),當(dāng)發(fā)送方收到對(duì)方的確認(rèn)(Fin的Ack確認(rèn))后才真正關(guān)閉整個(gè)TCP連接脚仔;

SYN_RECV 30  # 表示正在等待處理的請(qǐng)求數(shù)币砂;

ESTABLISHED 1597 # 表示正常數(shù)據(jù)傳輸狀態(tài); 

FIN_WAIT1 51 # 表示server端主動(dòng)要求關(guān)閉tcp連接玻侥; 

FIN_WAIT2 504 # 表示客戶端中斷連接决摧; 

TIME_WAIT 1057  # 表示處理完畢,等待超時(shí)結(jié)束的請(qǐng)求數(shù)凑兰; 

附錄

一月 Jan January
二月 Feb February
三月 Mar March
四月 Apr April
五月 May May
六月 June June
七月 July July
八月 Aug Aguest
九月 Sept September
十月 Oct October
十一月 Nov November
十二月 Dec December

倉(cāng)促成文掌桩,不當(dāng)之處,在所難免,尚盼讀者,多加指正

-------------------------我是分割線-------------------------

硬廣時(shí)間(對(duì)Nginx感興趣的童鞋可以看下)####

Nginx系列課程索引###

  1. 引子: WebServer與PHP通信姿勢(shì)
    熟悉了解Nginx與PHP是怎么進(jìn)行通信的

  2. 起手式: PHP程序猿應(yīng)該知道的Nginx (上)
    如何更好的使用Nginx和Nginx配置

  3. 進(jìn)階式: PHP程序猿應(yīng)該知道的Nginx (中)
    深入理解Nginx內(nèi)核和Nginx運(yùn)行原理,剖析Nginx高性能的秘密

  4. 實(shí)戰(zhàn)篇: PHP程序猿應(yīng)該知道的Nginx (下)
    百聞不如一run 一起來開發(fā)一個(gè)Nginx的拓展

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末姑食,一起剝皮案震驚了整個(gè)濱河市波岛,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌音半,老刑警劉巖则拷,帶你破解...
    沈念sama閱讀 221,198評(píng)論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異曹鸠,居然都是意外死亡煌茬,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,334評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門彻桃,熙熙樓的掌柜王于貴愁眉苦臉地迎上來坛善,“玉大人,你說我怎么就攤上這事邻眷∶呤海” “怎么了?”我有些...
    開封第一講書人閱讀 167,643評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵肆饶,是天一觀的道長(zhǎng)改衩。 經(jīng)常有香客問我,道長(zhǎng)驯镊,這世上最難降的妖魔是什么葫督? 我笑而不...
    開封第一講書人閱讀 59,495評(píng)論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮阿宅,結(jié)果婚禮上候衍,老公的妹妹穿的比我還像新娘。我一直安慰自己洒放,他們只是感情好蛉鹿,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,502評(píng)論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著往湿,像睡著了一般妖异。 火紅的嫁衣襯著肌膚如雪惋戏。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,156評(píng)論 1 308
  • 那天他膳,我揣著相機(jī)與錄音响逢,去河邊找鬼棕孙。 笑死,一個(gè)胖子當(dāng)著我的面吹牛钦铺,可吹牛的內(nèi)容都是我干的矛洞。 我是一名探鬼主播烫映,決...
    沈念sama閱讀 40,743評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼锭沟,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼冈钦!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,659評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎白翻,沒想到半個(gè)月后滤馍,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,200評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡槐瑞,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,282評(píng)論 3 340
  • 正文 我和宋清朗相戀三年阁苞,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了祠挫。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片等舔。...
    茶點(diǎn)故事閱讀 40,424評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡糟趾,死狀恐怖义郑,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情只锭,我是刑警寧澤蜻展,帶...
    沈念sama閱讀 36,107評(píng)論 5 349
  • 正文 年R本政府宣布纵顾,位于F島的核電站栋盹,受9級(jí)特大地震影響例获,放射性物質(zhì)發(fā)生泄漏榨汤。R本人自食惡果不足惜蠕搜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,789評(píng)論 3 333
  • 文/蒙蒙 一妓灌、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧蜜宪,春花似錦虫埂、人聲如沸圃验。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,264評(píng)論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽岖免。三九已至岳颇,卻和暖如春颅湘,著一層夾襖步出監(jiān)牢的瞬間话侧,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,390評(píng)論 1 271
  • 我被黑心中介騙來泰國(guó)打工闯参, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留瞻鹏,地道東北人鹿寨。 一個(gè)月前我還...
    沈念sama閱讀 48,798評(píng)論 3 376
  • 正文 我出身青樓新博,卻偏偏與公主長(zhǎng)得像赫悄,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,435評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容

  • 轉(zhuǎn)自: https://wujunze.com/server_logs_analysis.jsp 2017-06-...
    鯨息_Leon閱讀 476評(píng)論 0 0
  • log日志分析,Nginx 0.8.5版本access.log日志分析shell命令 大 | 中 | 小 [ 2...
    Golang小白閱讀 3,873評(píng)論 0 1
  • 1慕趴、Nginx日志分析日志格式:'$remote_addr - $remote_user [$time_local...
    運(yùn)維前線閱讀 725評(píng)論 0 4
  • 用途 記錄訪問服務(wù)器的遠(yuǎn)程主機(jī)IP地址冕房,可以得知瀏覽者來自何處 記錄瀏覽者訪問web資源躏啰,可以了解網(wǎng)站哪些部分最受...
    imsilence閱讀 3,044評(píng)論 0 3
  • 1.文件操作 echo "演示與文件和文件夾創(chuàng)建處理等相關(guān)命令" echo "查看文件目錄" echo "命令:l...
    sixmonk閱讀 333評(píng)論 0 1