
解決策はありますか?
nc 192.168.1.1 1234 は接続されるまで再試行し、ポート番号 192.168.1.1 でリッスンするマシンの「nc 192.168.1.1 1234」を介して出力を送信します。 1234.
??
//ncコマンドで接続が作成されたら、「nc」を介してメッセージを送信したいと思います。それ以外の場合は、ncを介して再接続を試みます。 //
答え1
bash
シェルまたは同様のシェルを使用している場合は、次のことができます。
cat message | while ! nc 192.168.1.1 1234 ; do sleep 1 ; done
答え2
同様の問題がありますが、カールがあります。そのために「再試行」という特別なツールを作成しました。 stdin 読み取りを 1 回だけ再試行し、成功するまで nc コマンドを繰り返し、成功するとパイプの次のコマンドに stdout を 1 回だけ出力します。
~$ echo output | retry -- nc 192.168.1.1 1234
retry: nc returned 1, backing off for 10 seconds and trying again...
retry: nc returned 1, backing off for 10 seconds and trying again...
^C
https://github.com/minfrin/retry
最新のDebian、Ubuntu、Nixですぐに使えます。