如何使用Google Cloud Shell安排shell脚本?

时间:2017-10-31 12:06:26

标签: shell cron google-cloud-platform google-bigquery google-cloud-shell

我有一个存储在GCS中的.sh文件。我正在尝试通过google cloud shell安排.sh文件。

我可以使用gsutil cat gs://miptestauto/baby.sh | sh命令运行相同的文件,但无法安排它。

以下是我安排文件的代码:

16 17 * * * gsutil cat gs://miptestauto/baby.sh | sh

它将消息显示为" auto saving..done"但是当我使用crontab -l

时,未显示预定作业
# contents of .sh file 
bin/bash
bq load --source_format=CSV babynames.baby_destination13 gs://testauto/yob2010.txt name:string,gender:string,count:integer

请有人告诉我如何安排使用谷歌云壳。 我没有使用计算引擎/ app引擎。只是想使用云外壳安排它。

提前谢谢你:)

3 个答案:

答案 0 :(得分:6)

根据the documentation,Cloud Shell仅供交互式使用。 Cloud Shell实例基于每个用户,每个会话进行配置,会话在一小时不活动后终止。

为了安排每日cron作业,实例需要一直启动并运行,但Cloud Shell不会发生这种情况,我相信你的工作没有因此而运行。

当您启动Cloud Shell时,它会设置一个f1-micro实例,如果您有资格for free,则该实例与“Always Free”相同。因此,您可以创建一个f1-micro实例,在其上配置cron作业并使其保持运行,以便它可以执行日常工作。

您可以在https://cloud.google.com/compute/pricing#freeusage

查看免费使用限制

答案 1 :(得分:0)

要安排脚本,首先必须创建一个项目(如果没有)。我假设您已经有一个项目,所以如果是这样的话,只需创建您想要安排此脚本的实例。

创建新实例:

  1. 在Google云端平台控制台上,点击“产品”和“服务是左上角有四个栏的图标。

  2. 在菜单上转到Compute部分并将鼠标悬停在Compute Engine上,然后单击VM Instances。

  3. 转到实例部分上方的菜单栏,您将看到“创建实例”按钮。单击它并填写您希望新实例具有的配置值。您选择的值将决定您的VM实例功能。除其他值外,您可以为新实例选择名称,区域和机器类型。
  4. 在机器类型部分,单击下拉菜单选项卡以选择“f1-micro实例”。
  5. 在Identity and API access部分中,为Storage API提供访问范围,以便您可以在需要时读取和写入存储桶;默认访问范围仅允许您阅读。还启用BigQuery API。

  6. 创建实例并访问存储桶后,只需在新实例中创建cron作业:在执行cron作业的用户帐户中,运行crontab -e并编辑此文件以运行将执行baby.sh脚本的cron作业。以下documentation link应该对此有所帮助。

  7. 请注意,如果您想查看脚本中的输出,可能需要redirect it到当前终端。

答案 2 :(得分:0)

您还可以使用Cloud Scheduler产品https://cloud.google.com/scheduler,它是一种无服务器托管的Cron计划程序。