sshを使用してリモートシステムでスクリプトを実行しようとしています。端末でコマンドを実行すると正常に実行されますが、コマンドをシェルスクリプトに含めるとエラーが返されます。
コマンド1:
cmd="ssh root@IP \"python /pathtoscript\""
`$cmd` > log.log
上記のコマンドに対して、スタック交換で次の提案を試しました。
cmd="ssh root@IP \"bash -c 'python /pathtoscript'"
cmd="ssh root@IP '/user/bin/python /pathtoscript'"
コマンド2:
ssh root@IP "ls -1v /path"
注:これらのコマンドはすべて端末で実行されます。
編集する:
端末でコマンドを実行すると正常に実行され、出力が表示されます。同じコマンドをスクリプト(.sh)に追加すると、次のエラーが表示されます。
bash: ssh root@IP 'python /pathtoscript' : No such file or directory
ベストアンサー1
まあ、私は専門家ではありませんが、これは役に立ちます。
sshコマンドを使用すると、前述のように実際に別のシステム「root @ IP」を入力します。
別のコンピュータにいるときにそこからローカルファイルを実行するには、まずファイルをそこに送信する必要があります。その後、そこでのみ実行できます。
今これを試してみてください
#scp file_you_need_to_send username@RemoteHost: ターゲットシステムのターゲット位置 これにより、スクリプトがターゲットシステムにコピーされます。
#sshユーザー名@remotehost対象システム入力
次に、対応するスクリプトを実行します。
:血