如何使用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。