あるコンピュータのアプリケーションから別のコンピュータの同じアプリケーションにstdin / stdoutを中継するためのシェルスクリプト

あるコンピュータのアプリケーションから別のコンピュータの同じアプリケーションにstdin / stdoutを中継するためのシェルスクリプト

アプリケーション名を「エンジン1に移動'はニューラルネットワークを介して実行される囲碁ゲームエンジンです。本当に強力で、私のネットワークの他のコンピュータでベンチマークしたいです。 Goエンジンサーバーとして機能するGoクライアント(SabakiやGoGuiなど)で使用するためのものです。 Goクライアントは2つのローカルGoエンジン(例:go-engine-1とgo-engine-2) 互いに反対します。私の場合は、2番目のエンジンを別のシステムで実行したいと思います。アプリケーションは、「Go Text Protocol」(省略してgtp)を使用して、テキストベースのstdin / stdoutをGoクライアントに送受信します。 Goクライアントは、2番目のエンジンのシェルコマンド(sshなど)を使用して直接設定するほどスマートではありません。 Gtpは本当に愚かですが、Goエンジンはsshを使用してリモートでシェルにI / Oを送受信できるほどスマートです(gtpをコマンドライン引数として使用)。スタンドアロンのローカルGoエンジンのように、Goクライアントと通信するには、Goエンジン(スクリプト)のネットワークベースのI / Oが必要です。

私は2番目のエンジン用のシェルベースのスクリプトを生成するためにsshと組み合わせたnetcat [/usr/bin/nc]を使うことができると思いました。推測できるように、これは私の専門知識を超えています。スクリプトはそれ自体を含める必要があり、GoクライアントにGoエンジンのデフォルトとして表示する必要があります。したがって、ポート、IPアドレス、またはユーザーアカウントのすべての設定は、シェルスクリプト内で設定するか、構成ファイルで参照する必要があります。 SSHキーを使用して両方のシステムを構成したので、リモートでログインしたりコマンドを送信したりするときに両方のシステムに資格情報を送信する必要はありません。必要に応じて、両方のコンピュータにrootアクセス権があるため、事前に両方のコンピュータのいずれか(Linux)でポートを設定または設定できます。

私はこれを修正し、成功しないまま以下のスクリプトを試しました。ここで同様の記事を見たので、適切な専門知識があれば、これは可能で簡単に達成できると信じる必要があります。 TIA--wirelesstvmc

#!/bin/sh

#/usr/bin/ncリモートシステム22 | /usr/bin/ssh -t user1@remotemachine goengine-2 gtp /usr/bin/ssh -f -L 9001:127.0.0.1:9000 user1@remotemachine sleep 10 /usr /bin/nc 127.0.0.1 9001 gtp |

関連情報