Linux

使用 Netstat 僅計算已建立、TIME_WAIT 和已關閉等待連接的腳本

  • August 21, 2015

我正在嘗試製作一個腳本(使用 Perl,但這不是必需的),它只會計算系統上的已建立、Time_Wait 和 Closed_Wait 連接的數量並在終端中列印它們。到目前為止,我發現我可以使用:

netstat -ant | awk '{print $6}' | sort | uniq -c | sort -n

為了列印所有連接,但是當我從腳本執行它時,它不會在終端中列印,並且它還給了我一些我不想要的連接,例如 Listen 和 Foreign。它必須只顯示Established、Time_Wait 和Closed_Wait 的原因是該腳本正被監控程序使用,如果出現任何其他連接類型,該腳本將失敗。任何人都可以提出建議嗎?謝謝!

您的腳本可以稍作修改以僅處理您需要的狀態:

netstat -ant | awk '/ESTABLISHED|LISTEN|CLOSE_WAIT/ {print $6}' | \
   sort | uniq -c | sort -n

進一步的步驟是使用 的所有內容awk,例如:

netstat -ant | awk '
/ESTABLISHED|LISTEN|CLOSE_WAIT/ {count[$6]++}
END {
 for(s in count) {
   printf("%12s : %6d\n", s, count[s]);
 }
}'

計算行數:

netstat -nat | egrep 'ESTABLISHED|TIME_WAIT|CLOSE_WAIT' | wc -l

僅列印這些行:

netstat -nat | egrep 'ESTABLISHED|TIME_WAIT|CLOSE_WAIT'

引用自:https://unix.stackexchange.com/questions/224668