【问题标题】:How to run local shell script on remote GCP machine via gcloud compute?如何通过 gcloud 计算在远程 GCP 机器上运行本地 shell 脚本?
【发布时间】:2021-02-04 03:18:46
【问题描述】:

我在本地机器上有一个脚本,想通过 gcloud 的 ssh 在远程 gcp 服务器上运行它。

我知道如何使用常规 ssh 命令来做到这一点:

ssh user@remotehost "bash -s" < local_script.sh

已在https://askubuntu.com/questions/204065/how-to-run-local-shell-script-on-remote-server-via-ssh进行了解释

我想要的是使用gcloud computer ssh:

gcloud beta compute ssh --zone MYZONE MYINSTANCE --project MYPROJECT ...

到目前为止我已经尝试过:

gcloud beta compute ssh --zone MYZONE MYINSTANCE --project MYPROJECT -- 'local_script.sh'

当然失败了,有错误:

bash: local_script.sh: command not found

如何使用 gcloud cmd 执行与 ssh user@remotehost "bash -s" &lt; local_script.sh 类似的操作?在最坏的情况下,我会将文件复制到远程机器并在那里运行,但我不能在远程机器上写任何东西。

【问题讨论】:

    标签: bash gcloud


    【解决方案1】:

    它可以像独立 ssh 一样被调用,你只需要包含-- 来将gcloud 选项与ssh 的参数分开:

    gcloud compute ssh user@host -- bash -s < local_script.sh
    

    【讨论】:

    • 请不要只发布代码作为答案,还要解释您的代码的作用以及它如何解决问题的问题。带有解释的答案通常更有帮助、质量更好,并且更有可能吸引投票
    • 谢谢 smemsh。它就像魅力一样。最初我没有在正确的位置包含“bash -s”。现在我明白了,我们只需要在之后添加所有额外的命令——然后 gcloud compute 将与 ssh 一样工作。
    最近更新 更多