web-dev-qa-db-ja.com

リモートマシンで複数のスクリプトを実行する方法

リモートでゲートウェイ(Linuxプラットフォームで動作)に接続する必要があり、その中にいくつかの実行可能ファイル(signingModule.shおよびtaxModule.sh)。次に、デスクトップに1つのスクリプトを記述して、そのゲートウェイに接続し、signingModule.shおよびtaxModule.sh 2つの異なる端末。

以下のコードを書きました:

ssh [email protected] #to connect to gateway
sleep 5
cd /opt/swfiscal/signingModule #path of both modules
./signingModule #executable

しかし、このコードを使用してゲートウェイに接続できますが、ゲートウェイに接続しても何も起こりません。

2番目のコード:

source configPath # file where i have given path of both the modules(configPath is placed in local machine)
cd $FCM_SCRIPTS # variable in which i have stored the path of modules
ssh [email protected] 'sh -' < signingModule #to connect and run one module (signingModule is placed in remote machine)

これの出力として、私は取得しています:source: configPath: file not found

これを解決するのを手伝ってください。前もって感謝します。

注意:

  1. 必要に応じて、そのゲートウェイにファイルをコピーして貼り付けることができます。
  2. Gnome-Terminalまたはこれに代わる方法がゲートウェイで機能していません。
  3. 私は別のターミナルですべてのモジュール(署名と税金)を実行する必要があります。他のアプリケーションは、これら2つのモジュールが稼働している場合にのみ機能します。それらを同時に実行するには、異なるタブまたはターミナルで実行する必要があります。
  4. リモートゲートウェイに配置された両方のモジュール(署名と税金)を実行するスクリプトをローカルマシンで作成する必要があります。そのため、ゲートウェイのモジュールにヒットするローカルマシンでそのスクリプトを実行します。
3

取得したエラーは、コマンドsource configPathを実行したフォルダーにファイルconfigPathが存在しないことを意味します。

仮定して:

  • ファイルconfigPathには次のステートメントが含まれています。
    #!/bin/bash
    export FCM_SCRIPTS=/path/on/remote/machine
    
  • /path/on/remote/machineフォルダーには、実行可能ファイルsigningModuleがあります
  • ファイルconfigPath/path/on/local/machineフォルダーにあります

これらの仮定が当てはまる場合は、ローカルマシンで簡単なスクリプト/path/on/local/machine/remoteExecution.shを作成する必要があります。

#!/bin/bash
cd $FCM_SCRIPTS
./signingModule

そして試してください:

cd /path/on/local/machine 
ssh [email protected] 'bash -s' < <(cat configPath remoteExecution.sh)

-sオプションは、コマンドが標準入力から読み取られることを意味します。

1
Lety