Linux
使用 Netstat 僅計算已建立、TIME_WAIT 和已關閉等待連接的腳本
我正在嘗試製作一個腳本(使用 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'