網站首頁 編程語言 正文
1、查看有多少個IP訪問
awk?'{print?$1}'?log_file|sort|uniq|wc?-l
2、查看某一個頁面被訪問的次數
grep?"/index.php"?log_file?|?wc?-l
3、查看每一個IP訪問了多少個頁面
awk?'{++S[$1]}?END?{for?(a?in?S)?print?a,S[a]}'?log_file?>?log.txt sort?-n?-t?'?'?-k?2?log.txt?配合sort進一步排序
4、將每個IP訪問的頁面數進行從小到大排序
awk?'{++S[$1]}?END?{for?(a?in?S)?print?S[a],a}'?log_file?|?sort?-n
5、查看某一個IP訪問了哪些頁面
grep?^111.111.111.111?log_file|?awk?'{print?$1,$7}'
6、去掉搜索引擎統計的頁面
awk?'{print?$12,$1}'?log_file?|?grep?^\"Mozilla?|?awk?'{print?$2}'?|sort?|?uniq?|?wc?-l
7、查看2015年8月16日14時這一個小時內有多少IP訪問
awk?'{print?$4,$1}'?log_file?|?grep?16/Aug/2015:14?|?awk?'{print?$2}'|?sort?|?uniq?|?wc?-l
8、查看訪問前十個ip地址
awk?'{print?$1}'?|sort|uniq?-c|sort?-nr?|head?-10?access_log
uniq -c 相當于分組統計并把統計數放在最前面
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、訪問次數最多的10個文件或頁面
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個ip
10、通過子域名訪問次數
依據referer來計算,稍有不準
cat?access.log?|?awk?'{print?$11}'?|?sed?-e?'?s/http:\/\///'?-e?'?s/\/.*//'?|?sort?|?uniq?-c?|?sort?-rn?|?head?-20
11、列出傳輸大小最大的幾個文件
cat?www.access.log?|awk?'($7~/\.php/){print?$10?"?"?$1?"?"?$4?"?"?$7}'|sort?-nr|head?-100
12、列出輸出大于200000byte(約200kb)的頁面以及對應頁面發生次數
cat?www.access.log?|awk?'($10?>?200000?&&?$7~/\.php/){print?$7}'|sort?-n|uniq?-c|sort?-nr|head?-100
13、如果日志最后一列記錄的是頁面文件傳輸時間,則有列出到客戶端最耗時的頁面
cat?www.access.log?|awk?'($7~/\.php/){print?$NF?"?"?$1?"?"?$4?"?"?$7}'|sort?-nr|head?-100
14、列出最最耗時的頁面(超過60秒的)的以及對應頁面發生次數
cat?www.access.log?|awk?'($NF?>?60?&&?$7~/\.php/){print?$7}'|sort?-n|uniq?-c|sort?-nr|head?-100
15、列出傳輸時間超過 30 秒的文件
cat?www.access.log?|awk?'($NF?>?30){print?$7}'|sort?-n|uniq?-c|sort?-nr|head?-20
16、列出當前服務器每一進程運行的數量,倒序排列
ps?-ef?|?awk?-F?'?'?'{print?$8?"?"?$9}'?|sort?|?uniq?-c?|sort?-nr?|head?-20
17、查看apache當前并發訪問數
對比httpd.conf中MaxClients的數字差距多少
netstat?-an?|?grep?ESTABLISHED?|?wc?-l
18、可以使用如下參數查看數據
ps?-ef|grep?httpd|wc?-l 1388
統計httpd進程數,連個請求會啟動一個進程,使用于Apache服務器。
表示Apache能夠處理1388個并發請求,這個值Apache可根據負載情況自動調整
netstat?-nat|grep?-i?"80"|wc?-l 4341
netstat -an會打印系統當前網絡鏈接狀態,而grep -i “80”是用來提取與80端口有關的連接的,wc -l進行連接數統計。
最終返回的數字就是當前所有80端口的請求總數
netstat?-na|grep?ESTABLISHED|wc?-l 376
netstat -an會打印系統當前網絡鏈接狀態,而grep ESTABLISHED 提取出已建立連接的信息。然后wc -l統計
最終返回的數字就是當前所有80端口的已建立連接的總數。
netstat?-nat||grep?ESTABLISHED|wc
可查看所有建立連接的詳細記錄
19、輸出每個ip的連接數,以及總的各個狀態的連接數
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個 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
獲取訪問最高的10個IP地址 同時也可以按時間來查詢
cat?linewow-access.log|awk?'{print?$1}'|sort|uniq?-c|sort?-nr|head?-10
時間段查詢日志時間段的情況
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的就輸出,本句的意思是最耗時的一百個PHP頁面
cat?log_file?|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
統計網站流量(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?'{counts[$(9)]+=1};?END?{for(code?in?counts)?print?code,?counts[code]}' cat?access.log?|awk?'{print?$9}'|sort|uniq?-c|sort?-rn
每秒并發
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"
帶寬統計
cat?apache.log?|awk?'{if($7~/GET/)?count++}END{print?"client_request="count}'
找出某天訪問次數最多的10個IP
cat?/tmp/access.log?|?grep?"20/Mar/2011"?|awk?'{print?$3}'|sort?|uniq?-c|sort?-nr|head
當天ip連接數最高的ip都在干些什么
cat?access.log?|?grep?"10.0.21.17"?|?awk?'{print?$8}'?|?sort?|?uniq?-c?|?sort?-nr?|?head?-n?10
小時單位里ip連接數最多的10個時段
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
找出訪問次數最多的幾個分鐘
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 #
則判斷開始時間戳與結束時間戳是否相等
START_LINE=sed -n "/$DATE_MINUTE/=" $APACHE_LOG|head -n1
?#如果不相等,則取出開始時間戳的行號,與結束時間戳的行號
查看tcp的鏈接狀態
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"}'
查找請求數前20個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
根據端口列進程
netstat?-ntlp?|?grep?80?|?awk?'{print?$7}'?|?cut?-d/?-f1
查看了連接數和當前的連接數
netstat?-ant?|?grep?$ip:80?|?wc?-l? netstat?-ant?|?grep?$ip:80?|?grep?EST?|?wc?-l
查看IP訪問次數
netstat?-nat|grep?":80"|awk?'{print?$5}'?|awk?-F:?'{print?$1}'?|?sort|?uniq?-c|sort?-n
Linux命令分析當前的鏈接狀況
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可以一直監控
LAST_ACK 5 #關閉一個TCP連接需要從兩個方向上分別進行關閉,雙方都是通過發送FIN來表示單方向數據的關閉,當通信雙方發送了最后一個FIN的時候,發送方此時處于LAST_ACK狀態,當發送方收到對方的確認(Fin的Ack確認)后才真正關閉整個TCP連接;
SYN_RECV 30 # 表示正在等待處理的請求數;
ESTABLISHED 1597 # 表示正常數據傳輸狀態;
FIN_WAIT1 51 # 表示server端主動要求關閉tcp連接;
FIN_WAIT2 504 # 表示客戶端中斷連接;
TIME_WAIT 1057 # 表示處理完畢,等待超時結束的請求數;
原文鏈接:https://segmentfault.com/a/1190000009745139
相關推薦
- 2022-04-16 Android中RecyclerView實現簡單購物車功能_Android
- 2023-03-01 Shell?$[]對整數進行數學運算實現_linux shell
- 2022-11-12 PostgreSQL邏輯復制解密原理解析_PostgreSQL
- 2022-04-01 Kubeadm:如何解決kubectl get cs顯示scheduler Unhealthy,co
- 2023-01-10 詳解C語言中的動態內存管理_C 語言
- 2022-06-06 ASP.NET的Core?AD域登錄過程示例_ASP.NET
- 2022-04-18 python?list?count統計個數的實現_python
- 2023-06-21 Android應用啟動白屏處理方案詳解_Android
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支