次のコマンドはポートリスナーを生成します。
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 `;'
テスト用にn個のポートリスナーを生成する方法は?
テストが完了したら、これらのポートリスナーをどのように削除できますか?
答え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の数字に拡張されます。