如何在Google Cloud Shell中按计划定时执行.sh脚本
Google Cloud Shell脚本定时自动运行最简实现指引
前置说明:Google Cloud Shell的5GB持久存储仅在会话处于激活状态时可访问,闲置1小时左右会话会被系统自动回收,因此无法直接在Cloud Shell内部配置本地cron任务实现无人值守定时运行,必须搭配GCP托管调度服务实现需求。
你需要完成的操作步骤(无需深入学习多服务原理)
- 第一步:将你写好的.sh脚本转存到Cloud Storage(GCS)存储桶,仅需执行2条命令:
- 创建专属存储桶(桶名需要全局唯一,可自定义后缀,例如下方的
xxx替换为你的昵称/随机字符串):gcloud storage buckets create gs://my-instance-mgmt-scripts-xxx --location=us-central1 - 上传本地脚本到存储桶:
gcloud storage cp /home/你的Cloud Shell用户名/你的脚本名称.sh gs://my-instance-mgmt-scripts-xxx/
- 创建专属存储桶(桶名需要全局唯一,可自定义后缀,例如下方的
- 第二步:配置Cloud Scheduler定时任务,无需修改原有脚本内容:
- 在Google Cloud Console搜索进入Cloud Scheduler页面,点击「创建任务」
- 频率栏填写你需要的定时规则,标准cron 5段式即可,例如每日凌晨2点执行填
0 2 * * *,时区选择你对应的本地时区 - 目标类型选择「执行gcloud命令」,命令内容直接填:
gcloud storage cat gs://my-instance-mgmt-scripts-xxx/你的脚本名称.sh | bash - 服务账号选择Cloud Scheduler默认服务账号,给该账号授予
Compute Admin和Storage Object Viewer两个最小权限即可完成配置,后续无需手动打开控制台触发,任务会按指定时间自动运行。
需要了解的最小知识范围
- cron表达式基础规则:仅需记住5段式结构为
分 时 日 月 周,日常使用可以直接用cron表达式生成工具点选获取对应时间规则,无需记忆复杂配置 - 权限配置逻辑:仅需要给Scheduler服务账号勾选上述两个权限即可覆盖实例关机、备份、重启的操作需求,无需理解IAM权限的复杂底层逻辑。
内容的提问来源于stack exchange,提问作者AlwaysAQ
相关产品推荐
相关产品推荐

