自己的小網(wǎng)站跑在阿里云的ECS上面,偶爾也去分析分析自己網(wǎng)站服務(wù)器日志,看看網(wǎng)站的訪問(wèn)量。看看有沒(méi)有黑闊搞破壞!于是收集,整理一些服務(wù)器日志分析命令,大家可以試試!
1、查看有多少個(gè)IP訪問(wèn):
awk'{print$1}'log_file|sort|uniq|wc-l
2、查看某一個(gè)頁(yè)面被訪問(wèn)的次數(shù):
grep"/index.php"log_file|wc-l
3、查看每一個(gè)IP訪問(wèn)了多少個(gè)頁(yè)面:
awk'{++S[$1]}END{for(ainS)printa,S[a]}'log_file>log.txt
sort-n-t''-k2log.txt配合sort進(jìn)一步排序
4、將每個(gè)IP訪問(wèn)的頁(yè)面數(shù)進(jìn)行從小到大排序:
awk'{++S[$1]}END{for(ainS)printS[a],a}'log_file|sort-n
5、查看某一個(gè)IP訪問(wèn)了哪些頁(yè)面:
grep^111.111.111.111log_file|awk'{print$1,$7}'
6、去掉搜索引擎統(tǒng)計(jì)的頁(yè)面:
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訪問(wèn):
awk'{print$4,$1}'log_file|grep16/Aug/2015:14|awk'{print$2}'|sort|uniq|wc-l
8、查看訪問(wèn)前十個(gè)ip地址
awk'{print$1}'|sort|uniq-c|sort-nr|head-10access_log
uniq -c 相當(dāng)于分組統(tǒng)計(jì)并把統(tǒng)計(jì)數(shù)放在最前面
cataccess.log|awk'{print$1}'|sort|uniq-c|sort-nr|head-10
cataccess.log|awk'{counts[$(11)]+=1};END{for(urlincounts)printcounts[url],url}
9、訪問(wèn)次數(shù)最多的10個(gè)文件或頁(yè)面
catlog_file|awk'{print$11}'|sort|uniq-c|sort-nr|head-10
catlog_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
訪問(wèn)量最大的前20個(gè)ip
10、通過(guò)子域名訪問(wèn)次數(shù),依據(jù)referer來(lái)計(jì)算,稍有不準(zhǔn)
cataccess.log|awk'{print$11}'|sed-e's/http:////'-e's//.*//'|sort|uniq-c|sort-rn|head-20
11、列出傳輸大小最大的幾個(gè)文件
catwww.access.log|awk'($7~/.php/){print$10""$1""$4""$7}'|sort-nr|head-100
12、列出輸出大于200000byte(約200kb)的頁(yè)面以及對(duì)應(yīng)頁(yè)面發(fā)生次數(shù)
catwww.access.log|awk'($10>200000&&$7~/.php/){print$7}'|sort-n|uniq-c|sort-nr|head-100
13、如果日志最后一列記錄的是頁(yè)面文件傳輸時(shí)間,則有列出到客戶端最耗時(shí)的頁(yè)面
catwww.access.log|awk'($7~/.php/){print$NF""$1""$4""$7}'|sort-nr|head-100
14、列出最最耗時(shí)的頁(yè)面(超過(guò)60秒的)的以及對(duì)應(yīng)頁(yè)面發(fā)生次數(shù)
catwww.access.log|awk'($NF>60&&$7~/.php/){print$7}'|sort-n|uniq-c|sort-nr|head-100
15、列出傳輸時(shí)間超過(guò) 30 秒的文件
catwww.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ā)訪問(wèn)數(shù)
對(duì)比httpd.conf中MaxClients的數(shù)字差距多少
netstat-an|grepESTABLISHED|wc-l
18、可以使用如下參數(shù)查看數(shù)據(jù)
ps-ef|grephttpd|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"是用來(lái)提取與80端口有關(guān)的連接的,wc -l進(jìn)行連接數(shù)統(tǒng)計(jì)。
最終返回的數(shù)字就是當(dāng)前所有80端口的請(qǐng)求總數(shù)
netstat-na|grepESTABLISHED|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||grepESTABLISHED|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(ainS){printf("%-20s%s",a,S[a]);++I}printf("%-20s%s","TOTAL_IP",I);for(ains)printf("%-20s%s",a,s[a]);printf("%-20s%s","TOTAL_LINK",N);}'
20、其他的收集
分析日志文件下 2012-05-04 訪問(wèn)頁(yè)面最高 的前20個(gè) URL 并排序
cataccess.log|grep'04/May/2012'|awk'{print$11}'|sort|uniq-c|sort-nr|head-20
查詢受訪問(wèn)頁(yè)面的URL地址中 含有 www.abc.com 網(wǎng)址的 IP 地址
cataccess_log|awk'($11~/www.abc.com/){print$1}'|sort|uniq-c|sort-nr
獲取訪問(wèn)最高的10個(gè)IP地址 同時(shí)也可以按時(shí)間來(lái)查詢
catlinewow-access.log|awk'{print$1}'|sort|uniq-c|sort-nr|head-10
時(shí)間段查詢?nèi)罩緯r(shí)間段的情況
catlog_file|egrep'15/Aug/2015|16/Aug/2015'|awk'{print$1}'|sort|uniq-c|sort-nr|head-10
分析2015/8/15 到 2015/8/16 訪問(wèn)"/index.php?g=Member&m=Public&a=sendValidCode"的IP倒序排列
catlog_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頁(yè)面
catlog_file|awk'($7~/.php/){print$NF""$1""$4""$7}'|sort-nr|head-100
列出最最耗時(shí)的頁(yè)面(超過(guò)60秒的)的以及對(duì)應(yīng)頁(yè)面發(fā)生次數(shù)
cataccess.log|awk'($NF>60&&$7~/.php/){print$7}'|sort-n|uniq-c|sort-nr|head-100
統(tǒng)計(jì)網(wǎng)站流量(G)
cataccess.log|awk'{sum+=$10}END{printsum/1024/1024/1024}'
統(tǒng)計(jì)404的連接
awk'($9~/404/)'access.log|awk'{print$9,$7}'|sort
統(tǒng)計(jì)http status
cataccess.log|awk'{counts[$(9)]+=1};END{for(codeincounts)printcode,counts[code]}'
cataccess.log|awk'{print$9}'|sort|uniq-c|sort-rn
每秒并發(fā)
watch"awk'{if($9~/200|30|404/)COUNT[$4]++}END{for(ainCOUNT)printa,COUNT[a]}'log_file|sort-k2-nr|head-n10"
帶寬統(tǒng)計(jì)
catapache.log|awk'{if($7~/GET/)count++}END{print"client_request="count}'
catapache.log|awk'{BYTE+=$11}END{print"client_kbyte_out="BYTE/1024"KB"}'
找出某天訪問(wèn)次數(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都在干些什么
cataccess.log|grep"10.0.21.17"|awk'{print$8}'|sort|uniq-c|sort-nr|head-n10
小時(shí)單位里ip連接數(shù)最多的10個(gè)時(shí)段
awk-vFS="[:]"'{gsub("-.*","",$1);num[$2""$1]++}END{for(iinnum)printi,num[i]}'log_file|sort-n-k3-r|head-10
找出訪問(wèn)次數(shù)最多的幾個(gè)分鐘
awk'{print$1}'access.log|grep"20/Mar/2011"|cut-c14-18|sort|uniq-c|sort-nr|head
取5分鐘日志
if[$DATE_MINUTE!=$DATE_END_MINUTE];then#則判斷開(kāi)始時(shí)間戳與結(jié)束時(shí)間戳是否相等
START_LINE=sed-n"/$DATE_MINUTE/="$APACHE_LOG|head-n1#如果不相等,則取出開(kāi)始時(shí)間戳的行號(hào),與結(jié)束時(shí)間戳的行號(hào)
查看tcp的鏈接狀態(tài)
查找請(qǐng)求數(shù)前20個(gè)IP(常用于查找攻來(lái)源):
netstat-anlp|grep80|greptcp|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(iinA)printA[i],i}'|sort-rn|head-n20
用tcpdump嗅探80端口的訪問(wèn)看看誰(shuí)最高
tcpdump-ieth0-tnndstport80-c1000|awk-F"."'{print$1"."$2"."$3"."$4}'|sort|uniq-c|sort-nr|head-20
查找較多time_wait連接
netstat-n|grepTIME_WAIT|awk'{print$5}'|sort|uniq-c|sort-rn|head-n20
找查較多的SYN連接
netstat-an|grepSYN|awk'{print$5}'|awk-F:'{print$1}'|sort|uniq-c|sort-nr|more
根據(jù)端口列進(jìn)程
netstat-ntlp|grep80|awk'{print$7}'|cut-d/-f1
查看了連接數(shù)和當(dāng)前的連接數(shù)
netstat-ant|grep$ip:80|wc-l
netstat-ant|grep$ip:80|grepEST|wc-l
查看IP訪問(wèn)次數(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(ainS)printa,S[a]}'
watch"netstat-n|awk'/^tcp/{++S[$NF]}END{for(ainS)printa,S[a]}'"#通過(guò)watch可以一直監(jiān)控
LAST_ACK5#關(guān)閉一個(gè)TCP連接需要從兩個(gè)方向上分別進(jìn)行關(guān)閉,雙方都是通過(guò)發(fā)送FIN來(lái)表示單方向數(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_RECV30#表示正在等待處理的請(qǐng)求數(shù);
ESTABLISHED1597#表示正常數(shù)據(jù)傳輸狀態(tài);
FIN_WAIT151#表示server端主動(dòng)要求關(guān)閉tcp連接;
FIN_WAIT2504#表示客戶端中斷連接;
TIME_WAIT1057#表示處理完畢,等待超時(shí)結(jié)束的請(qǐng)求數(shù);
責(zé)任編輯:xj
原文標(biāo)題:這些 Shell 分析服務(wù)器日志命令集錦,收藏好
文章出處:【微信公眾號(hào):Linux愛(ài)好者】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
-
服務(wù)器
+關(guān)注
關(guān)注
12文章
9272瀏覽量
85813 -
命令
+關(guān)注
關(guān)注
5文章
693瀏覽量
22068 -
Shell
+關(guān)注
關(guān)注
1文章
366瀏覽量
23430
原文標(biāo)題:這些 Shell 分析服務(wù)器日志命令集錦,收藏好
文章出處:【微信號(hào):LinuxHub,微信公眾號(hào):Linux愛(ài)好者】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論