データベースへのsshトンネル。データベースにアクセスするためにSSHトンネルを使用するスクリプトを記述しようとしています。 私はそれを動作させることができません。 他の誰かが前にこれを試しましたか?
すでにsshキーを設定しており、スクリプトとは別のcmdウィンドウでsshコマンドを実行する場合、オープンデータベースを実行して返すことができますが、すべてをJSLに統合できる場合は(トンネルを開くことを忘れないでください)。
Names default to here(1);
rp = Run Program(
executable("ssh.exe"),
Options({"-tt", "-L 1414:localhost:1414", "test@test.com"}),
ReadFunction( "text" )
);
dt = open database(
"cxn_string",
"SELECT * FROM Test",
"Test"
);
rp << Write EOF();
前もって感謝します。
再:データベースへのsshトンネル。RunProgramは永遠に待機し、ssh.exeからすべての出力を取得しようとしていると思います。
ReadFunction( "text")は、RunProgramがプログラムが終了するまでブロックし、プログラムが生成したテキストを返すことを意味します(おそらくあなたの例ではなし)。
これはブロックせず、出力をログにコピーします:
ReadFunction(
Function( {this},
write(this << read);
)
)それが機能する場合、rp(元の例では)は、返されるテキストではなくrunprogramオブジェクトになります。
https://community.jmp.com/t5/Uncharted/JSL-to-Control-Raspberry-Camera/ba-p/226243 おそらくssh.exeと同等のplink.exeを使用します。私は使わなければなりませんでした
rp <SPAN class="token operator"><</SPAN><SPAN class="token operator"><</SPAN><SPAN class="token messages"> Write</SPAN><SPAN class="token punctuation">(</SPAN> <SPAN class="token string">"exit\!n"</SPAN> <SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">;</SPAN>
きれいな切断を取得します。rp << writeeofは動作するはずですが、成功しませんでした。
再:データベースへのsshトンネル。ダー そのことを考えるべきだった。 ありがとう。