在远程和“找不到命令”上执行bash脚本

时间:2019-06-12 05:40:20

标签: linux bash ssh package

我正在尝试使用ssh执行bash脚本。

说有机器A和B。bash脚本在A上,并且它具有使用A中本地安装的软件包的命令。该软件包未在B中安装。我尝试从A运行脚本时将其切换到B.但是我一直都在“找不到命令”。

这就是我所做的:

ssh username@server 'bash -s' < local/path/to/file

我想知道是因为我没有在服务器B上安装软件包吗?有什么方法可以使用B执行脚本而不必在其上安装软件包(我的帐户没有对该目录的写权限)?

2 个答案:

答案 0 :(得分:1)

理论上,您可以付出很大的努力将有问题的整个软件嵌入到脚本中,然后将其传递到SSH标准输入中。但是,如果服务器受到适当保护(甚至可能是一个不同的平台),并且编译后的程序具有很多依赖关系,那么从棘手到多年的项目,这都是很困难的。

“包”的简单情况只是一个没有依赖关系的单行shell脚本,您可以简单地将脚本内容复制到脚本中。但是绝大多数情况将更加困难。

答案 1 :(得分:0)

在单引号内传递给ssh的命令在远程主机上执行;因此,这些命令必须存在于远程主机上,以便它们在此执行。