スクリプトをリモートで実行したい。しかし、システムはパスを認識しません。 「そのようなファイルやディレクトリがない」と文句を言います。私はそれを正しく使用していますか?
ssh kev@server1 `./test/foo.sh`
バックティックは、ローカルシェルでコマンドを実行し、コマンドラインに結果を表示します。あなたが言っているのは、「./ test/foo.shを実行して、ここでコマンドラインに入力したかのように出力を渡す」ということです。
次のコマンドを試して、リモートコンピューターのホームディレクトリからスクリプトへのパスであることを確認します。
ssh kev@server1 './test/foo.sh'
また、スクリプトはリモートコンピューター上になければなりません。これは基本的に、リストされたコマンドを使用してシェルとしてリモートコンピューターにログインします。このようなリモートコンピューターでローカルスクリプトを実行することはできません(わからない面白いトリックがない限り)。
できるよ:
ssh user@Host 'bash -s' < /path/script.sh
ローカルスクリプトをリモートで保存せずにリモートで実行する場合は、次のようにします。
cat local_script.sh | ssh user@remotehost 'bash -'
それは私にとって魅力のようです。
WindowsコンピューターにMSYSがインストールされていれば、WindowsからLinuxにでもできます。
そのように実行できるかどうかはわかりません。
通常、最初にscpでコピーしてからログインして実行します。
scp foo.sh user@Host:~
ssh user@Host
./foo.sh
ユーザーがスクリプトを実行可能にします"Kev"そして、コマンドsh kev@server1 /test/foo.sh
このコマンドを使用してシェルスクリプトを呼び出すことができました。
ssh ${serverhost} "./sh/checkScript.ksh"
もちろん、checkScript.ksh
は$HOME/sh
ディレクトリに存在する必要があります。