
このコマンドを使用してポートをリッスンし、データをファイルにダンプします。
while : ; do nc -l 0.0.0.0 10000 > log.txt & done
最初のリクエストは完璧に機能し、log.txt にダンプされますが、最初のリクエストの後、nc はリッスンしなくなり、停止します。
誰か私が間違っているところを指摘してくれませんか?
これをバックグラウンドで継続的に実行し、このポートからのすべてのリクエストを log.txt ファイルに記録したいだけです...
答え1
オプションを追加する必要がありますいいえオプションはバージョンによって異なりますいいえ実行しているものです。例えば私の場合(Kubuntu)では、オプションは-kマニュアルページから、
-k 現在の接続が完了した後も、nc が別の接続を待機し続けるように強制します。このオプションを -l オプションなしで使用するとエラーになります。
約束はできません-k動作する(もちろんUbuntuでない限り)場合は、同様のものを探す必要があります。たとえば、私のDebianでは、-k存在しませんが、次のものが見つかります:
-q 標準入力の EOF 後、指定された秒数待機してから終了します。秒数が負の場合は、永久に待機します。
編集:
動作するかどうかを確認するには、1 台の PC で次の手順を実行します。
nc -k -l 0.0.0.0 10000 > out.txt
2台目のPCの場合:
echo Hello | nc IP_address_of_first_pc 10000
上記のコマンドを数回実行し、その後中断します。いいえpc1 でコマンドを実行し、out.txt の行数を確認します。