執行以下命令: #netstat -n | awk ‘/^tcp/ {++state[$NF]} END {for(key in state) print key."\t".state[key]}’ 會得到類似下面的結果,具體數字會有所不同: FIN_WAIT_1 286 FIN_WAIT_2 960 SYN_SENT 3 LAST_ACK 32 CLOSING 1 CLOSED 36 SYN_RCVD 144 TIME_WAIT 2520 ESTABLISHED 352 #差不多等於連接的並發數 這條命令可以把當前系統的網絡連接狀態分類匯總。 這條語句是在張宴那邊看到,據說是從新浪互動社區事業部技術總監王老大那兒獲得的,非常不錯。 返回參數的說明如下: SYN_RECV表示正在等待處理的請求數; ESTABLISHED表示正常數據傳輸狀態; TIME_WAIT表示處理完畢,等待超時結束的請求數。 ------------------------------------------------------------------ 再來看看awk: /^tcp/ 濾出tcp開頭的記錄,屏蔽udp, socket等無關記錄。 state[] 相當於定義了一個名叫state的數組 NF 表示記錄的字段數,如上所示的記錄,NF等於6 $NF 表示某個字段的值,如上所示的記錄,$NF也就是$6,表示第6個字段的值,也就是TIME_WAIT state[$NF] 表示數組元素的值,如上所示的記錄,就是state[TIME_WAIT]狀態的連接數 ++state[$NF] 表示把某個數加一,如上所示的記錄,就是把state[TIME_WAIT]狀態的連接數加一 END 表示在最后階段要執行的命令 for(key in state) 遍歷數組 print key,"\t",state[key] 打印數組的鍵和值,中間用\t制表符分割,美化一下。