如何安排 VM 在不同的一天停止

How to schedule a VM to stop on a different day

在 GCP 中,我想通过 Instance Scheduler 在一个 day/time 上启动一个 VM,然后在另一个 day/time 上停止它。

我想我可以创建两个调度程序来完成此操作,但这是不可能的,因为我在尝试将 VM 附加到第二个创建的调度程序时收到此错误消息:

Invalid resource usage: 'Instance already has instance schedule policy attached. Attaching multiple policies is not supported.'.

我怎样才能在不同的一天停止 VM,而不是在它开始的那一天? (最好通过 GCP 控制台)

这是配置的 VM 启动屏幕截图。

实例计划 让您可以在指定时间自动启动和停止 VM 实例。每个 VM 实例只能遵循一个实例时间表,但您可以将每个实例时间表附加到最多 1,000 个 VM 实例。您只能将实例计划附加到与实例计划位于同一区域的 VM 实例。

因此,如果您想 在一个月的特定日期和时间启动虚拟机 在另一个特定的时间停止虚拟机 每月的日期和时间,您可以在创建实例计划时使用 cron 表达式 实现此目的。

  1. 要启用 cron 表达式,请在创建实例计划时单击窗格顶部的使用 CRON 表达式 开关。

  2. 输入 启动 CRON 表达式停止 CRON 表达式,或同时输入两者。

  3. 在启动 CRON 表达式字段中,输入描述何时启动 VM 实例的 cron 表达式。

  4. 在停止 CRON 表达式字段中,输入描述何时停止 VM 实例的 cron 表达式

  5. 启动日期字段 中,键入或单击 date_range 到 select 您想要此实例计划的日期和时间开始。如果省略,该时间表立即生效。

  6. 结束日期字段 中,键入或单击 date_range 到 select 您想要此实例计划的日期和时间结束。如果省略,时间表将无限期有效。

以下 table 定义了 cron 表达式的字段以及每个字段支持的值。

Minute Hour Day of the month Month Day of the week
0-59 0-23 1-31 1-12 (where 29-31 are only effective for relevant months) 0-6 or SUN-SAT (Sunday-Saturday), where 0=SUN, 1=MON, … 6=SAT

例如,如果您想在 4 月 30 日 启动虚拟机并在 5 月 5 日 停止虚拟机,您可以指定cron表达式如下

VM 开始表达式: 30 10 30 4 *

VM 停止表达式:30 10 5 5 *

这里的*表示如果day-of-the-month字段、月份字段、day-of-the-week字段都设置为*,则每天重复日程。

编写 cron 表达式时,请考虑以下事项:

空格用于分隔 cron 表达式的字段。请记住不要在使用特殊字符的字段中添加额外的空格。

以下是使用 cron 表达式配置实例计划的参考截图:

您可以通过检查 audit logs 实例调度资源策略来验证实例调度是否成功运行 和附加的 VM 实例。在每个操作的预定时间之后,您可能需要等待最多 15 分钟。

有关instance schedule and cron expression

的信息,请参阅link