1. 程式人生 > >Linux通過netstat命令檢視80埠連線數的方法

Linux通過netstat命令檢視80埠連線數的方法

伺服器上的一些統計資料:

  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

  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命令試試看。

統計當前資料夾下檔案的個數,包括子資料夾裡的

ls -lR|grep "^-"|wc -l

統計資料夾下目錄的個數,包括子資料夾裡的

ls -lR|grep "^d"|wc -l

統計當前資料夾下檔案的個數

ls -l |grep "^-"|wc -l

統計當前資料夾下目錄的個數

ls -l |grep "^d"|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 [email protected],templateId=23,titleId=11,type=3,[email protected],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
....

  1. [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
  2. 10:30 10:34 3
  3. 10:35 10:39 1
  4. 11:30 11:34 1
  5. 11:35 11:39 1
  6. 12:25 12:29 1
  7. 12:30 12:34 1