bash スクリプトでpssh (パラレル ssh)の -I オプションを使用しようとしていますが、問題が発生しています。このオプションを使用すると、リモート マシン上のローカル マシンでスクリプトを実行できます。テスト用に非常に単純なものを試してみましたが、問題を理解できないようです。このスレッドを見つけましたが、代わりにコマンドラインから pssh が実行されました。その部分は機能します。
まず、3 つの異なるスクリプトがあります。
テスト- これは、リモート サーバーの /tmp ディレクトリに配置されます。それはbashではなく、プログラムのシェルに使用されるプレーンテキストです
testa - test を使用するコマンドを呼び出します。
test3 - pscp を使用してテストを /tmp に送信し、pssh を使用してリモート システムで testa.sh を実行します。
test3には以下が含まれます。
#!/bin/bash
set -x
send="pscp.pssh -H 10.1.1.1 -l user /home/user/test /tmp/"
axe="pssh -H 10.1.1.1 -l user -I<./testa -x -tt"
${send}
${axe}
set +x
これが私が得るエラーです:
+ pssh -H 10.1.1.1 -l user '-I<./testa' -x -tt
Usage: pssh [OPTIONS] command [...]
pssh: error: no such option: -<
+ set +x
pscp の部分は正常に動作し、回避策として pscp を使用して test と testa の両方を送信し、リモート サーバーで testa を実行しましたが、送信したくありません。デバッグから、何らかの理由で単一引用符が -I の周りに追加されているように見えます。-I<(./testa.sh) を使用してみましたが、コマンドラインから同じコマンドを問題なく実行できますが、それでも同じです。ちなみに、これはCentos 7、psshバージョン2.3.1およびbash 4.2.46にあります