【问题标题】:Executing bash script on remote and "command not found" [closed]在远程和“找不到命令”上执行 bash 脚本 [关闭]
【发布时间】:2019-10-26 13:28:19
【问题描述】:

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

假设有机器 A 和 B。bash 脚本在 A 上,它有一个命令使用本地安装在 A 中的包。该包没有安装在 B 中。我试图在 sshing 到时从 A 运行脚本B. 但我不断收到“找不到命令”。

这就是我所做的:

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

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

【问题讨论】:

  • 这是不可能的。
  • 我投票决定将此问题作为离题结束,因为这不是编程专业人士或爱好者会问的问题。

标签: linux bash ssh package


【解决方案1】:

理论上您可以通过大量的努力将整个有问题的软件嵌入到您的脚本中,并将其传递到 SSH 标准输入中。但是对于一个安全可靠的服务器(甚至可能是一个不同的平台)和一个具有大量依赖项的编译程序,这可能是一个棘手的项目,也可能是一个多年的项目。

“包”只是一个没有依赖关系的单行 shell 脚本,您可以简单地将脚本的内容复制到脚本中。但绝大多数案例的难度要大几个数量级。

【讨论】:

  • @jww 我不知道你为什么要告诉我。我投票关闭它,但它还没有关闭。我只是陷入了理论上的可能性,我认为这有点有趣。
【解决方案2】:

单引号内传递给 ssh 的命令在远程主机上执行;因此,这些命令必须存在于远程主机上才能在那里执行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-10
    • 1970-01-01
    • 2013-10-18
    • 2021-06-15
    • 2012-01-12
    相关资源
    最近更新 更多