Netstatを使用して設定されたスクリプト、TIME_WAIT、およびクローズされたスタンバイ接続のみを計算します。

Netstatを使用して設定されたスクリプト、TIME_WAIT、およびクローズされたスタンバイ接続のみを計算します。

私は、システムに設定されたTime_WaitおよびClosed_Wait接続の数を計算して端末に印刷するスクリプト(Perlを使用しますが必須ではありません)を作成しようとしています。これまで、私は以下が利用可能であることがわかりました。

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

すべての接続を印刷しようとしていますが、スクリプトで実行すると、端末に印刷されず、Listenやforeignなど、私が探していなかったいくつかの接続も提供されます。設定済み、Time_Wait、および Closed_Wait のみを表示する必要があるのは、スクリプトがモニターで使用中で、他の接続タイプが発生した場合に失敗するためです。誰でも提案できますか?ありがとうございます!

答え1

必要な状態のみを処理するようにスクリプトを少し変更できます。

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]);
  }
}'

答え2

行数を計算します。

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

次の行だけを印刷します。

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

関連情報