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

我想远程运行一个脚本。 但系统无法识别path。 它抱怨说,“没有这样的文件或目录”我使用它的权利?

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

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

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

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

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

你可以做的是。

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

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

我通常首先用scp复制它,然后login运行它。

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

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

我能够使用这个命令调用一个shell脚本:

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

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

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

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

对我来说就像是一种魅力。

我甚至从Windows到Linux,因为你的Windows电脑上安装了MSYS。