自己的小網(wǎng)站跑在阿里云的ECS上面,偶爾也去分析分析自己網(wǎng)站服務(wù)器日志,看看網(wǎng)站的訪問量??纯从袥]有黑闊搞破壞!于是收集,整理一些服務(wù)器日志分析命令,大家可以試試!
1、查看有多少個IP訪問:
awk'{print$1}'log_file|sort|uniq|wc-l
2、查看某一個頁面被訪問的次數(shù):
grep"/index.php"log_file|wc-l
3、查看每一個IP訪問了多少個頁面:
awk'{++S[$1]}END{for(ainS)printa,S[a]}'log_file>log.txt
sort-n-t''-k2log.txt配合sort進(jìn)一步排序
4、將每個IP訪問的頁面數(shù)進(jìn)行從小到大排序:
awk'{++S[$1]}END{for(ainS)printS[a],a}'log_file|sort-n
5、查看某一個IP訪問了哪些頁面:
grep^111.111.111.111log_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í)這一個小時(shí)內(nèi)有多少IP訪問:
awk'{print$4,$1}'log_file|grep16/Aug/2015:14|awk'{print$2}'|sort|uniq|wc-l
8、查看訪問前十個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、訪問次數(shù)最多的10個文件或頁面
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
訪問量最大的前20個ip
10、通過子域名訪問次數(shù),依據(jù)referer來計(jì)算,稍有不準(zhǔn)
cataccess.log|awk'{print$11}'|sed-e's/http:////'-e's//.*//'|sort|uniq-c|sort-rn|head-20
11、列出傳輸大小最大的幾個文件
catwww.access.log|awk'($7~/.php/){print$10""$1""$4""$7}'|sort-nr|head-100
12、列出輸出大于200000byte(約200kb)的頁面以及對應(yīng)頁面發(fā)生次數(shù)
catwww.access.log|awk'($10>200000&&$7~/.php/){print$7}'|sort-n|uniq-c|sort-nr|head-100
13、如果日志最后一列記錄的是頁面文件傳輸時(shí)間,則有列出到客戶端最耗時(shí)的頁面
catwww.access.log|awk'($7~/.php/){print$NF""$1""$4""$7}'|sort-nr|head-100
14、列出最最耗時(shí)的頁面(超過60秒的)的以及對應(yīng)頁面發(fā)生次數(shù)
catwww.access.log|awk'($NF>60&&$7~/.php/){print$7}'|sort-n|uniq-c|sort-nr|head-100
15、列出傳輸時(shí)間超過 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ā)訪問數(shù)
對比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ù),連個請求會啟動一個進(jìn)程,使用于Apache服務(wù)器。
表示Apache能夠處理1388個并發(fā)請求,這個值A(chǔ)pache可根據(jù)負(fù)載情況自動調(diào)整
netstat-nat|grep-i"80"|wc-l
4341
netstat -an會打印系統(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端口的請求總數(shù)
netstat-na|grepESTABLISHED|wc-l
376
netstat -an會打印系統(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、輸出每個ip的連接數(shù),以及總的各個狀態(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 訪問頁面最高 的前20個 URL 并排序
cataccess.log|grep'04/May/2012'|awk'{print$11}'|sort|uniq-c|sort-nr|head-20
查詢受訪問頁面的URL地址中 含有 www.abc.com 網(wǎng)址的 IP 地址
cataccess_log|awk'($11~/www.abc.com/){print$1}'|sort|uniq-c|sort-nr
獲取訪問最高的10個IP地址 同時(shí)也可以按時(shí)間來查詢
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 訪問"/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í)的一百個PHP頁面
catlog_file|awk'($7~/.php/){print$NF""$1""$4""$7}'|sort-nr|head-100
列出最最耗時(shí)的頁面(超過60秒的)的以及對應(yīng)頁面發(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"}'
找出某天訪問次數(shù)最多的10個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個時(shí)段
awk-vFS="[:]"'{gsub("-.*","",$1);num[$2""$1]++}END{for(iinnum)printi,num[i]}'log_file|sort-n-k3-r|head-10
找出訪問次數(shù)最多的幾個分鐘
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#則判斷開始時(shí)間戳與結(jié)束時(shí)間戳是否相等
START_LINE=sed-n"/$DATE_MINUTE/="$APACHE_LOG|head-n1#如果不相等,則取出開始時(shí)間戳的行號,與結(jié)束時(shí)間戳的行號
查看tcp的鏈接狀態(tài)
查找請求數(shù)前20個IP(常用于查找攻來源):
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端口的訪問看看誰最高
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訪問次數(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]}'"#通過watch可以一直監(jiān)控
LAST_ACK5#關(guān)閉一個TCP連接需要從兩個方向上分別進(jìn)行關(guān)閉,雙方都是通過發(fā)送FIN來表示單方向數(shù)據(jù)的關(guān)閉,當(dāng)通信雙方發(fā)送了最后一個FIN的時(shí)候,發(fā)送方此時(shí)處于LAST_ACK狀態(tài),當(dāng)發(fā)送方收到對方的確認(rèn)(Fin的Ack確認(rèn))后才真正關(guān)閉整個TCP連接;
SYN_RECV30#表示正在等待處理的請求數(shù);
ESTABLISHED1597#表示正常數(shù)據(jù)傳輸狀態(tài);
FIN_WAIT151#表示server端主動要求關(guān)閉tcp連接;
FIN_WAIT2504#表示客戶端中斷連接;
TIME_WAIT1057#表示處理完畢,等待超時(shí)結(jié)束的請求數(shù);
責(zé)任編輯:xj
原文標(biāo)題:這些 Shell 分析服務(wù)器日志命令集錦,收藏好
文章出處:【微信公眾號:Linux愛好者】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
-
服務(wù)器
+關(guān)注
關(guān)注
12文章
9222瀏覽量
85606 -
命令
+關(guān)注
關(guān)注
5文章
687瀏覽量
22053 -
Shell
+關(guān)注
關(guān)注
1文章
366瀏覽量
23411
原文標(biāo)題:這些 Shell 分析服務(wù)器日志命令集錦,收藏好
文章出處:【微信號:LinuxHub,微信公眾號:Linux愛好者】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論