netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
我解釋一下,如果有不對的,請高手指教。 /^tcp/ # 搜索以tcp開頭的行 S[$NF] 以$NF爲數組下標,建立數組S ++S[$NF] 給數組S賦值,相當於有一個tcp那麼這個S數組裏的元素就+1 /^tcp/ {++S[$NF]} 整個意思應該是 匹配出一個tcp協議的連接 數組S就+一個元素值 END是前面的/^tcp/ {++S[$NF]} 執行結束後在執行 {for(a in S) print a, S[a]} 將S值代入a 打印a 和這個S[a]數組的值 比如S是10 那麼a就是10 S[a] 就是s這個數組的第10個元素的值
返回結果示例:
LAST_ACK 5
SYN_RECV 30
ESTABLISHED 1597
FIN_WAIT1 51
FIN_WAIT2 504
TIME_WAIT 1057
其中的SYN_RECV表示正在等待處理的請求數;ESTABLISHED表示正常數據傳輸狀態;TIME_WAIT表示處理完畢,等待超時結束的請求數。
狀態:描述
CLOSED:無連接是活動的或正在進行
LISTEN:服務器在等待進入呼叫
SYN_RECV:一個連接請求已經到達,等待確認
SYN_SENT:應用已經開始,打開一個連接
ESTABLISHED:正常數據傳輸狀態
FIN_WAIT1:應用說它已經完成
FIN_WAIT2:另一邊已同意釋放
ITMED_WAIT:等待所有分組死掉
CLOSING:兩邊同時嘗試關閉
TIME_WAIT:另一邊已初始化一個釋放
LAST_ACK:等待所有分組死掉
查看Nginx運行進程數
ps -ef | grep nginx | wc -l返回的數字就是nginx的運行進程數
如果是apache則執行
ps -ef | grep httpd | wc -l3
查看Web服務器進程連接數:
netstat -antp | grep 80 | grep ESTABLISHED -c4
查看MySQL進程連接數:
ps -axef | grep mysqld -c
grep -c 的作用類似grep | wc -l,不同的是,如果是查找多個文件,grep -c會統計每個文件匹配的行數,每行一個文件的列出來,而wc -l 則列出總的統計數字。
另外grep -c 要比 grep | wc -l快一點。