首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从本地服务器在客户端运行Bash脚本?

从本地服务器在客户端运行Bash脚本?
EN

Ask Ubuntu用户
提问于 2014-03-31 08:23:01
回答 3查看 2.6K关注 0票数 1

我写了一个bash脚本供我使用,它起作用了。我希望将该脚本放在网络中的某个服务器中,并在我网络中的膝上型计算机/台式机中调用该脚本来执行。无论如何,我已经做了一条道路,也如下所示。

步骤:

  1. 在本地服务器中安装Apache web服务器。
  2. 将脚本放到web服务器中。
  3. 使脚本成为可执行的chmod a+x
  4. 在客户端机器中打开终端并安装包curl
  5. 现在,从客户机终端本身执行命令,如: sudo curl -kL http://serverip/script.sh bash

它工作得很好,但唯一的问题是,在我的脚本中,我使用了用户输入命令,比如“”,这在这个场景中是行不通的。所以怎么做是我的问题。我有什么办法吗?

EN

回答 3

Ask Ubuntu用户

回答已采纳

发布于 2014-03-31 10:07:42

您可以使用:

代码语言:javascript
运行
复制
bash -c "$(curl -kL http://serverip/script.sh)"

这将在本地机器上运行脚本。还请参阅man bash以了解我为什么使用-c选项。在这种情况下,双引号也是非常重要的。

此外,正如@terdon在他的评论中所说的,sudo curl是毫无意义的。如果脚本需要本地sudo权限,则需要在bash命令前面使用sudo

票数 1
EN

Ask Ubuntu用户

发布于 2014-03-31 18:16:50

我想你要的是

代码语言:javascript
运行
复制
wget http://server.com/scriptname.sh && bash scriptname.sh

它只需在本地下载脚本并运行它。

票数 1
EN

Ask Ubuntu用户

发布于 2014-03-31 09:20:53

正如Radu的评论中所建议的,为什么不使用ssh从本地服务器启动脚本呢?

首先在客户端系统上安装openssh-server

代码语言:javascript
运行
复制
sudo apt-get install openssh-server

然后从本地服务器:

代码语言:javascript
运行
复制
ssh -t client_login@client_ip '/path_to_your_script/script.sh'

-t选项在ssh -t命令部队伪tty分配中。

票数 0
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/441417

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档