netstatで情報を解析する方法は?

netstatで情報を解析する方法は?

の出力から次をどのように抽出できますかnetstat -anp

  • IPアドレスの削除
  • リモートポート
  • ローカルアプリケーション名
  • ローカルポート
  • PID

私のconkyで実行するにはこの情報が必要です。 PID番号の最後の数字が欠落していることを除いて、すべてが表示されます。コマンドがわかりませんsed。助けてください。

コマンドは次のとおりです。

netstat -anp | grep 'ESTABLISHED' | sed -r 's|.*192.[0-9.]+:([0-9]*)\s*([0-9.]+):([0-9]+)[^ESTABLISHED]+\ESTABLISHED ([0-9]*)[^/]+/([a-zA-Z0-9-]*)|\5 \2 \1 \3 \4|' | awk '{printf("%-14s %-15s %8s %6s %8s\n",$1,$2,$3,$4,$5)}' 

正しいコマンド出力を表示するには、設定された接続(Firefoxなど)を開く必要があります。

答え1

問題はsedパターンのこの部分にあります。

([0-9]*)[^/]+/

0..9までの任意の数字をキャプチャし、スラッシュ「/」ではなく1文字以上の文字「/」をキャプチャします。これは文字列と一致しようとします。

ESTABLISHED 2783/firefox

最初はと一致します2783が、一致するには最後の数字3を削除する必要があります。スラッシュではない

回避策は、0一致を許可するように+aに置き換えることです。*

([0-9]*)[^/]*/

関連情報