服務器上的一些統計數據:
1)統計80端口連接數
netstat -nat|grep -i “80”|wc -l
2)統計httpd協議連接數
ps -ef|grep httpd|wc -l
3)、統計已連接上的,狀態為“established
netstat -na|grep ESTABLISHED|wc -l
4)、查出哪個IP地址連接最多,將其封了。
netstat -na|grep ESTABLISHED|awk {print $5}|awk -F: {print $1}|sort|uniq -c|sort -r +0n
netstat -na|grep SYN|awk {print $5}|awk -F: {print $1}|sort|uniq -c|sort -r +0n
查看nginx當前並發訪問數:
netstat -apn|grep 'nginx: worker'|wc -l
1、查看apache當前並發訪問數:
netstat -an | grep ESTABLISHED | wc -l
對比httpd.conf中MaxClients的數字差距多少。
2、查看有多少個進程數:
ps aux|grep httpd|wc -l
3、可以使用如下參數查看數據
server-status?auto
#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 - 可查看所有建立連接的詳細記錄
查看Apache的並發請求數及其TCP連接狀態:
Linux命令:
netstat -n | awk ‘/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}’
返回結果示例:
LAST_ACK 5
SYN_RECV 30
ESTABLISHED 1597
FIN_WAIT1 51
FIN_WAIT2 504
TIME_WAIT 1057
其中的
SYN_RECV表示正在等待處理的請求數;
ESTABLISHED表示正常數據傳輸狀態;
TIME_WAIT表示處理完畢,等待超時結束的請求數。
查看httpd進程數(即prefork模式下Apache能夠處理的並發請求數):
Linux命令:
ps -ef | grep httpd | wc -l
查看Apache的並發請求數及其TCP連接狀態:
Linux命令:
netstat -n | awk ‘/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}’
返回結果示例:
LAST_ACK 5
SYN_RECV 30
ESTABLISHED 1597
FIN_WAIT1 51
FIN_WAIT2 504
TIME_WAIT 1057
說明:
SYN_RECV表示正在等待處理的請求數;
ESTABLISHED表示正常數據傳輸狀態;
TIME_WAIT表示處理完畢,等待超時結束的請求數。
netstat常見參數
-a (all)顯示所有選項,默認不顯示LISTEN相關
-t (tcp)僅顯示tcp相關選項
-u (udp)僅顯示udp相關選項
-n 拒絕顯示別名,能顯示數字的全部轉化成數字。
-l 僅列出有在 Listen (監聽) 的服?兆刺?/p》
-p 顯示建立相關鏈接的程序名
-r 顯示路由信息,路由表
-e 顯示擴展信息,例如uid等
-s 按各個協議進行統計
-c 每隔一個固定時間,執行該netstat命令。
提示:LISTEN和LISTENING的狀態只有用-a或者-l才能看到
上面就是Linux使用netstat命令查看80端口連接數的方法,想要查看80端口連接數的朋友可以使用netstat命令試試看。
【Linux】Linux下統計當前文件夾下的文件個數、目錄個數
統計當前文件夾下文件的個數,包括子文件夾里的
ls -lR|grep "^-"|wc -l
統計文件夾下目錄的個數,包括子文件夾里的
ls -lR|grep "^d"|wc -l
統計當前文件夾下文件的個數
ls -l |grep "^-"|wc -l
統計當前文件夾下目錄的個數
ls -l |grep "^d"|wc -l
如何統計文件a.txt有多少非空行?
grep -v '^$' a.txt | wc -l
附:
統計輸出信息的行數
wc -l
將長列表輸出信息過濾一部分,只保留一般文件,如果只保留目錄就是 ^d
grep "^-"
查找當前文件夾及其子目錄下含特定關鍵字(20130923)的文件個數: find .|grep 20130923 |wc -l
統計當前文件夾下的文件大小: du -h (列出每個文件夾的大小)
du -sh (列出所有文件夾大小)
統計當前文件夾下含特定關鍵字(20130923)的文件個數:ls -lrt | grep 20130923 | wc - l
統計當前文件下目錄和文件的個數: ls | wc -l
使用grep查找文件中指定字符出現的次數
grep -o ‘好' 文件名.txt | wc -l
awk統計訪問日志前10的ip
日志格式如下:
2013-10-2910:26:09,INFO, send toEmail=wuas6662@163.com,templateId=23,titleId=11,type=3,sendEmail=noreply+renrenzhichang@mail.xiaozhao.com,ip=10.3.22.134,mailType=4,emailId=526f1bd8c8f2a90213662a67
shell命令如下:
cat mail-2013-10-28.log | awk -F ',' '{print $8}' | sort | uniq -c | sort -k1nr | head -10
2、linux命令 對日志文件的IP出現的次數進行統計 並顯示次數最多的前六名
解決方法:
grep -i -o -E "([0-9]{1,3}\.){3}[0-9]{1,3}" test1.txt | sort -n | uniq -c | sort -n -r | head -6
參數詳情:
grep命令 用於文本搜索
-E:用於使用正則匹配
-o:只顯示匹配的部分
-i:忽略大小寫
sort命令用於排序
-n:數值排序
-r:倒序排序
uniq命令用於去重
-c:顯示重復次數
head -6命令顯示前6行
日志格式如下:訪問IP、時間、返回狀態碼
XX.XX.XX.XX - - [09/Sep/2015:10:30:00 +0800] 200
XX.XX.XX.XX - - [09/Sep/2015:10:34:00 +0800] 206
XX.XX.XX.XX - - [09/Sep/2015:10:37:00 +0800] 302
XX.XX.XX.XX - - [09/Sep/2015:10:32:00 +0800] 303
XX.XX.XX.XX - - [09/Sep/2015:11:30:00 +0800] 200
XX.XX.XX.XX - - [09/Sep/2015:11:39:00 +0800] 200
XX.XX.XX.XX - - [09/Sep/2015:12:29:00 +0800] 200
XX.XX.XX.XX - - [09/Sep/2015:12:30:00 +0800] 200
需求如下:
統計每五分鍾的請求數,沒有結果的輸出為0(或者不輸出都可以),如下格式:
10:00-10:04 0
10:05-10:09 0
....
- [root@test /tmp]$ awk -F: '{a[$2":"($3-$3%5)]++}END{for(i in a){split(i,t);print i,t[1]":"t[2]+4,a[i] | "sort -t: -k1n -k2n"}}' a
- 10:30 10:34 3
- 10:35 10:39 1
- 11:30 11:34 1
- 11:35 11:39 1
- 12:25 12:29 1
- 12:30 12:34 1
