如何使用SSH远程运行脚本文件

时间:2009-06-25 00:18:18

标签: scripting ssh

我想远程运行脚本。但系统无法识别路径。它抱怨“没有这样的文件或目录”。我用它了吗?

ssh kev@server1 `./test/foo.sh`

6 个答案:

答案 0 :(得分:139)

你可以这样做:

ssh user@host 'bash -s' < /path/script.sh

答案 1 :(得分:43)

Backticks将在本地shell上运行该命令并将结果放在命令行上。你所说的是'执行./test/foo.sh然后传递输出,就好像我在命令行上输入它一样'。

尝试以下命令,并确保从远程计算机上的主目录到脚本的路径。

ssh kev@server1 './test/foo.sh'

此外,脚本必须位于远程计算机上。这样做本质上是以列出的命令作为shell登录到远程计算机。你不能在这样的远程计算机上运行本地脚本(除非有一些我不知道的有趣技巧)。

答案 2 :(得分:4)

如果要远程执行本地脚本而不远程保存该脚本,可以这样做:

cat local_script.sh | ssh user@remotehost 'bash -'

它对我来说就像一个魅力。

考虑到您的Windows计算机上安装了MSYS,我甚至可以从Windows到Linux。

答案 3 :(得分:1)

我不知道是否可以像这样运行它。

我通常首先使用scp复制它,然后登录以运行它。

scp foo.sh user@host:~
ssh user@host
./foo.sh

答案 4 :(得分:0)

让用户“Kev”使脚本可执行,然后删除通过命令运行的尝试 sh kev@server1 /test/foo.sh

答案 5 :(得分:0)

我可以使用以下命令调用shell脚本:

ssh ${serverhost} "./sh/checkScript.ksh"

当然,checkScript.ksh目录中必须存在$HOME/sh