Netstat連続更新(ウォッチは出力を変更します)


18

私はこのシンプルなコマンドを使用して、Debianサーバー上の接続を監視しています(最近のDoS攻撃に対処するため):

netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n

継続的に実行するにはどうすればよいですか?そのため、1分に1回(またはもちろん任意の時間)自動的に更新されます。私は時計を試しました:

watch -n 30 "netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n"

ただし、接続の数が多いナイスリストの出力を次のように変更しました。

1 tcp        0  10015 [LOCAL IP]
...
1 Proto Recv-Q Send-Q Local Address           Foreign Address         State
1 Active Internet connections (w/o servers)

そのため、外部IPは表示されません。見逃したものはありますか?

元の出力は次のようになります。

  2 [IP ADDRESS]
  4 [IP ADDRESS]
  4 [IP ADDRESS]
  4 [IP ADDRESS]
  7 [IP ADDRESS]
 16 [IP ADDRESS]
 71 [IP ADDRESS]

そして、私が言うとき、私は[LOCAL IP]私のマシンのIPを意味しています。

それを実行すると-cフリーズするだけです。


ルート権限で監視を実行していますか?コマンドは健全に見え、マシンで期待するとおりに動作するようです。なしで実行するとアドレスは出力されず、30秒後にエラーメッセージが出力される場合があります。

@StewartPlattルートの下で実行します。元のコマンド出力を追加しました。問題は、私が見ているとき- 私の IPアドレスのみを出力し、私に接続されているIPをまったく出力しないことです。

回答:


22
netstat -c

私はあなたの問題を誤解していないならあなたを助けるかもしれません。-cは--continuousを表します。

編集:そこに行きます:

watch -n 30 "netstat -ntu | awk '{print \$5}' | cut -d: -f1 | sort | uniq -c | sort -n"

$の前に\を追加しました。


すでに試しましたが、質問でこれを指定しなかったのが残念です。-cを追加するとフリーズします。

watchの出力で$ 5が削除されることに気付きました。引用符の問題があるかもしれません。私はそれを掘っている..

、時計に特殊文字をエスケープについて知るには良いをありがとう

1

60秒間スリープするwhileループを実行するだけです

[root@host] $ while true
> do
> netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
> sleep 60
> done

これにより、60秒ごとに同じ出力が得られます

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.