リモート SSH コマンドは、「該当するファイルまたはディレクトリはありません」というエラーとともに、シェルスクリプトでのみ失敗します。

リモート SSH コマンドは、「該当するファイルまたはディレクトリはありません」というエラーとともに、シェルスクリプトでのみ失敗します。

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対象システム入力

次に、対応するスクリプトを実行します。

:血

おすすめ記事