linux - 无法使用ssh在sh文件上调用带有变量的命令

标签 linux ssh sh

我在 centos 7 服务器上有用于通过使用的 id 终止进程的脚本:

#!/bin/sh

echo "killing services..."

kill -9 "$(lsof -t -i:3011)"
kill -9 "$(lsof -t -i:4011)"

当从服务器调用时,上面的脚本工作正常。

但我的目标是从我的本地计算机使用 ssh 调用此文件,例如:

ssh xxx@xxx.x "sh ~/stopServices.sh"

但是我得到了这个错误:

killing services...
/home/system/gepick-dev/stopDevServices.sh: line 5: lsof: command not found
/home/system/gepick-dev/stopDevServices.sh: line 5: kill: `': not a pid or valid job spec
/home/system/gepick-dev/stopDevServices.sh: line 6: lsof: command not found
/home/system/gepick-dev/stopDevServices.sh: line 6: kill: `': not a pid or valid job spec

最佳答案

您需要在远程服务器上安装 lsof。

或者尝试将完整路径(如/usr/sbin/lsof)添加到您的脚本中,或者如果已安装二进制文件,则在远程服务器中配置您的 PATH

关于linux - 无法使用ssh在sh文件上调用带有变量的命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56034336/

相关文章:

linux - 如何判断当前操作系统是否使用类 Linux 或类 MacOSX 共享库?

ssh - cygwin上的公钥身份验证问题

linux - 如何使用带有 zenity 文件夹选择内容的变量 sed 重写脚本

linux - 从一个文件复制内容并需要使用 sed 替换到另一个文件中

c - 从c中的tcp套接字读取数据,并卡住数据而不将其复制到用户空间

linux - g++: 错误:无法识别的命令行选项 ‘--32’ ;你是说 ‘-m32’ 吗?

linux - 如何使用 awk 和 bash 检查文本文件中的字段是否为空

unix - 无法使用独立的 SSH 客户端连接/可以使用 Java SSH 客户端从浏览器连接

bash - 如何通过SSH(使用Bash)从多个来源输出主机列表的数据

python - 如何在我的红帽服务器上运行 python 文件?