Linuxシステムでポートリスナーを作成するには?

Linuxシステムでポートリスナーを作成するには?

次のコマンドはポートリスナーを生成します。

nc –l 5500 &

次のように:

[root@xyz ~]# netstat -anlp | grep 5500
tcp       0     0 0.0.0.0:5500               0.0.0.0:*                   LISTEN
   21085/nc

100個のポートリスナーを作成したいと思います。

ただし、構文は次のとおりです。

 $ for i in {10000..10100}; do nc -l $i &; done

エラーが発生します。

 bash: syntax error near unexpected token `;'

  1. テスト用にn個のポートリスナーを生成する方法は?

  2. テストが完了したら、これらのポートリスナーをどのように削除できますか?

答え1

で述べたようにチャット&のようなステートメントの終結子な;ので、;前にdone表示しないでください。

for i in {10000..10100}; do nc -l "$i" & done

または、

for i in {10000..10100}; do
    nc -l "$i" &
done

ncを使用してすべてのプロセスを終了できますpkill nc

あるいは、各プロセスのPIDをnc配列に保存し、その配列を使用してプロセスを終了します。

pids=()
for i in {10000..10100}; do
    nc -l "$i" & pids+=("$!")
done

後:

kill "${pids[@]}"

明らかに、これはncコマンドのPIDが他のプロセスによって回収されなかったと仮定します。


roaimaがコメントで指摘したように、中括弧の拡張は{10000..10100}100ではなく101の数字に拡張されます。

関連情報