web-dev-qa-db-ja.com

SSHトンネルを確立し、トンネルを使用する別のプログラムを実行するスクリプト

安全なシェルセッション経由でリモートPostgresデータベースに接続するGUIアプリ(Gnucash)を実行しています。 SSH -Lコマンドを使用してローカルポートをトンネルし、Gnucashを個別に実行することができます。これは正常に機能します。

私がやりたいのは、トンネルを設定してからGnucashを呼び出す単一のシェルスクリプトを使用することです。それは可能ですか?もしそうなら、どうすればいいですか?現在、2つの個別のターミナルウィンドウで次のようなコマンドを実行しています。

ssh -L 5433:127.0.0.1:19097 [email protected] gnucash postgres:// gnucash @ localhost:5433/gnucash_db

単純に両方の行をシェルスクリプトに入れると、1行目はリモートシェルにドロップされ、2行目はリモートシェルを終了するまで実行されません。

TIA、ロブ・ヒルズ

3
Rob Hills

ssh -fNT -L 5433:127.0.0.1:19097 [email protected]を使用して、トンネルの確立後にsshに自動的にバックグラウンドを要求すると、スクリプトは次のコマンドに進むことができます。ターミナルを閉じてexitプロセスを強制終了するsshでスクリプトを終了することをお勧めします。それ以外の場合は、明示的に強制終了するか、サーバーがタイムアウトした場合に終了する必要があります。

0
ish