我的本地机器上有sh脚本,如下所示:
// run_script.sh
#!/bin/sh -e
echo "Hello"是否可以在远程服务器上执行此脚本而不将其复制到?如下所示:
grunt.initConfig({
script_path: '/path/to/run_script.sh',
shell: {
makeDir: {
command: '<%= script_path.sh %>'
}
}
});发布于 2014-10-30 16:07:28
如果脚本部署在远程服务器上,那么您可以通过SSH调用它。但是您需要在远程服务器上启动SSHD。我建议您配置密钥对(因为您希望具有非交互行为,并且openssh被设计为与密码交互)。
ssh me@remote myScript.sh如果脚本是本地的,那么您可以复制它(scp)然后执行它。或者您可以通过SSH执行远程SHELL并通过stdin发送本地脚本。
cat myScript.sh | ssh me@remote bash在任何情况下,您都必须对您的环境做出强有力的假设(例如,windows机器上没有sshd .)如果您解释了场景背后的实际用例,也许我们可以提出更好的解决方案。
编辑:您希望运行部署脚本。在安装软件时,重要的是要信任执行它的人(特别是在生产中)。一般情况并不简单..。
我建议你去找juju/厨师/木偶/ansible或其他类似的软件。最后一个是无代理的。它们可以代替您的咕噜/外壳自制脚本,或者您可以模仿您需要的东西。
https://stackoverflow.com/questions/26629548
复制相似问题