netstat -npに似たコマンドですが、ステータスとPIDによってグループ化されていますか?

netstat -npに似たコマンドですが、ステータスとPIDによってグループ化されていますか?

netstat -np似ていますが、グループ化されたコマンドはありますか?状態そしてPID

現在、プログラムごとにグループ化されている特定の状態のサーバー接続数を知りたいです。

同様に、

102 squid ESTABLISHED
32 httpd ESTABLISHED

RHEL5を使用しています。

ベストアンサー1

任意の形式でsort出力を再構成できます。netstat

$ netstat -anpt 2>&1 | tail -n +5 | sort -k7,7 -k 6,6

これにより、最初に列7(プロセス名/ PID)を使用して出力をソートし、次に状態(ESTABLISHED、LISTENなど)を使用してソートします。

メモ:コマンドの最初の部分はnetstat -anpt 2>&1 | tail -n +5 ..また、STDOUTのすべての可能な出力をSTDINに送信してから、netstat興味のない定型句出力である最初の5行を切り捨てます。

はい

$ netstat -anpt 2>&1 | tail -n +5 | sort -k7,7 -k 6,6
tcp        0      0 192.168.1.20:49309      192.168.1.103:631       ESTABLISHED 2077/gnome-settings 
tcp        0      0 192.168.1.20:38393      204.62.14.135:443       ESTABLISHED 2260/mono           
tcp        0      0 192.168.1.20:39738      74.125.192.125:5222     ESTABLISHED 2264/pidgin         
tcp        0      0 192.168.1.20:40097      87.117.201.130:6667     ESTABLISHED 2264/pidgin         
tcp        0      0 192.168.1.20:53920      217.168.150.38:6667     ESTABLISHED 2264/pidgin         
...
tcp        1      0 192.168.1.20:50135      190.93.247.58:80        CLOSE_WAIT  24714/google-chrome 
tcp        1      0 192.168.1.20:44420      192.168.1.103:631       CLOSE_WAIT  24714/google-chrome 
tcp        0      0 192.168.1.20:36892      74.125.201.188:5228     ESTABLISHED 24714/google-chrome 
tcp        0      0 192.168.1.20:43778      74.125.192.125:5222     ESTABLISHED 24714/google-chrome 
tcp        0      0 192.168.1.20:33749      198.252.206.140:80      ESTABLISHED 24714/google-chrome 
...

wcあるいは、などのさまざまなツールを使用して、同様のアプローチを使用して数を取得できますuniq -c

出力変更

本当に次のような出力を取得したい場合netstat

102 squid ESTABLISHED
32 httpd ESTABLISHED

awkさらにスライスしてダイシングするには、&を使用できますsed。これはもう少し簡単ですが、作業を開始して完了するのに役立ちます。

$ netstat -anpt 2>&1 | tail -n +5 | awk '{print $7,$6}' | sort -k1,1 -k3,3 \
    | sed 's#/# #' | column -t
2264   pidgin          ESTABLISHED
2264   pidgin          ESTABLISHED
24714  google-chrome   CLOSE_WAIT
24714  google-chrome   CLOSE_WAIT
24714  google-chrome   ESTABLISHED
24714  google-chrome   ESTABLISHED
...
24714  google-chrome   ESTABLISHED
26358  ssh             ESTABLISHED
26358  ssh             ESTABLISHED
26358  ssh             ESTABLISHED
26358  ssh             LISTEN
26358  ssh             LISTEN
26358  ssh             LISTEN

メモ: column -tすべての出力を良い列に揃えます。

接続数の計算

最後に、発生回数計算の観点から所望のタスクを実行する。

$ netstat -anpt 2>&1 | tail -n +5 | awk '{print $7,$6}' | sort -k1,1 -k3,3 \
    | sed 's#/# #' | column -t | uniq -c
  6 -      LISTEN
  8 -      TIME_WAIT
  1 2077   gnome-settings  ESTABLISHED
  1 2260   mono            ESTABLISHED
 10 2264   pidgin          ESTABLISHED
  2 24714  google-chrome   CLOSE_WAIT
 27 24714  google-chrome   ESTABLISHED
  3 26358  ssh             ESTABLISHED
  4 26358  ssh             LISTEN
  1 26359  ssh             ESTABLISHED
  4 3042   thunderbird     ESTABLISHED
  1 32472  monodevelop     ESTABLISHED
  2 32472  monodevelop     LISTEN
  1 32533  mono            ESTABLISHED
  1 32533  mono            LISTEN
  1 3284   monodevelop     LISTEN
  1 3365   mono            LISTEN
  1 4528   mono            LISTEN
  1 8416   dropbox         ESTABLISHED
  1 8416   dropbox         LISTEN

最初の列は数を表します。

おすすめ記事