2

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

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

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

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

它将消息显示为“自动保存..完成”,但我使用时未显示计划的作业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

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

先感谢您 :)

4

3 回答 3

8

根据文档,Cloud Shell 仅供交互使用。Cloud Shell 实例按每个用户、每个会话进行预配,会话在一个小时不活动后终止。

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

当您启动Cloud Shell时,它会预置一个 f1-micro 实例,如果您有资格获得“始终免费”</a> ,该实例与您可以免费获得的机器类型相同。因此,您可以创建一个 f1-micro 实例,在其上配置 cron 作业并使其保持运行,以便它可以执行日常作业。

您可以在https://cloud.google.com/compute/pricing#freeusage查看免费使用限制

于 2017-10-31T17:08:23.737 回答
1

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

要创建新实例:

  1. 在 Google Cloud Platform Console 中,单击产品和服务,它是左上角带有四个条的图标。

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

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

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

请注意,如果您想查看脚本的输出,您可能需要将其重定向到当前终端。

于 2017-11-01T13:32:12.890 回答
1

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

于 2020-03-07T19:54:28.250 回答