2017-02-15 21 views
0

私はサーバにsshを実行し、以下のようなシェルスクリプトを実行しています。私はそれを実行するとssh引数を使ってシェルスクリプトを実行する

if [ -z "$1" ] 
    then 
    echo "Please supply the command to be executed" 
    exit 1 
fi 
echo "$1" 
COMMAND=$1 
eval $COMMAND 
if [ $? -eq 0 ]; then 
    exit 0 
else 
    exit 1 
fi 

の下に、私がログに取得するすべての 'は/ usr/local/binに/ノード' そのまま私のシェルファイルの

ssh -o 'StrictHostKeyChecking no' [email protected]$some_ip_address sh execute_all.sh '/usr/local/bin/ruby /home/user1/run.rb 2>&1 >> /home/user1/run.log' 

コンテンツがあります。私も$ *を試して、 '/ usr/local/bin/ruby​​ /home/user1/run.rb 2'を表示します。明らかに私のevalコマンドは実行できません。

シェルスクリプトでコマンド全体を実行します。それ、どうやったら出来るの。 SSH経由で実行するコマンドを引用

答えて

0

がトリッキーなので、同様に、1つの引数としてコマンド全体を渡してみてください。

のssh -o @ $ some_ip_address「のsh execute_all.sh USER1 'ノーStrictHostKeyChecking' を「/ USR/local/binに/ルビー/home/user1/run.rb 2> & 1 >> /home/user1/run.log」」

注新しい二重引用符文字。

関連する問題