我有一个存储在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引擎。只是想使用云外壳安排它。
提前谢谢你:)
答案 0 :(得分:6)
根据the documentation,Cloud Shell仅供交互式使用。 Cloud Shell实例基于每个用户,每个会话进行配置,会话在一小时不活动后终止。
为了安排每日cron作业,实例需要一直启动并运行,但Cloud Shell不会发生这种情况,我相信你的工作没有因此而运行。
当您启动Cloud Shell时,它会设置一个f1-micro实例,如果您有资格for free,则该实例与“Always Free”相同。因此,您可以创建一个f1-micro实例,在其上配置cron作业并使其保持运行,以便它可以执行日常工作。
查看免费使用限制答案 1 :(得分:0)
要安排脚本,首先必须创建一个项目(如果没有)。我假设您已经有一个项目,所以如果是这样的话,只需创建您想要安排此脚本的实例。
创建新实例:
在Google云端平台控制台上,点击“产品”和“服务是左上角有四个栏的图标。
在菜单上转到Compute部分并将鼠标悬停在Compute Engine上,然后单击VM Instances。
在Identity and API access部分中,为Storage API提供访问范围,以便您可以在需要时读取和写入存储桶;默认访问范围仅允许您阅读。还启用BigQuery API。
创建实例并访问存储桶后,只需在新实例中创建cron作业:在执行cron作业的用户帐户中,运行crontab -e并编辑此文件以运行将执行baby.sh脚本的cron作业。以下documentation link应该对此有所帮助。
请注意,如果您想查看脚本中的输出,可能需要redirect it到当前终端。
答案 2 :(得分:0)
您还可以使用Cloud Scheduler产品https://cloud.google.com/scheduler,它是一种无服务器托管的Cron计划程序。