SSH経由のタイムアウトNetcatサーバー

SSH経由のタイムアウトNetcatサーバー

SSH経由で別のコンピュータに接続し、netcatサーバーを開くスクリプトを作成しています。サーバーがタイムアウトできる必要があります。

-l無視する-w.

このコマンドはnetcat -w 3使用法を私に返します。

どうすればいいですか?

答え1

好きなことをするためのトリックは次のとおりです。

nc -l 12345 & NC_PID=$! ; sleep 3; if [ `netstat -ant | grep ':12345 .*ESTABLISHED'` -eq 0 ]; then kill -9 $NC_PID; fi

サーバーを起動し、タイムアウトに関係なく休止状態を維持し、接続が確立されない場合はnetcatを終了します。リスナーに一致するリモートポートとの既存の接続がある場合、サーバーがハングする可能性がありますが、幸運ではありません。

注:CentOS Linuxでテストしたため、コードは完全に移植可能ではありませんが、アイデアはすべての* nixシステムで機能する必要があります。

関連情報