|  | 
| 在ESXi主机上,您可以使用vSphere Web Client或者REST API来设置虚拟机的定时启动和定时关机。以下是使用vSphere Web Client的方法: 
 打开vSphere Web Client并连接到ESXi主机。
 
 在导航面板中选择“虚拟机和模板”。
 
 选择要设置定时任务的虚拟机,然后点击“配置”选项卡。
 
 在“任务计划”区域,点击“添加任务计划”。
 
 输入任务名称,选择“启动虚拟机”或“关机虚拟机”,并设置执行任务的时间和日期。
 
 选择时区,然后保存设置。
 
 使用REST API的话,可以通过发送HTTP请求来实现定时启动和关机。以下是一个使用Python和requests库发送REST API请求的示例:
 
 import requests
 from requests.auth import HTTPBasicAuth
 import json
 
 # 配置ESXi主机的认证信息
 host = "https://your-esxi-host"
 username = "your-username"
 password = "your-password"
 
 # 虚拟机的ID,可以通过ESXi主机的管理界面获取
 vm_id = "vm-1234"
 
 # 定义启动和关机的函数
 def schedule_start(host, username, password, vm_id, schedule):
 url = f"{host}/rest/scheduler/schedule"
 payload = {
 "name": "Start VM",
 "description": "Schedule to start a virtual machine",
 "action": {
 "type": "VirtualMachineAction",
 "vm": vm_id,
 "operation": "powerOn"
 },
 "schedule": schedule
 }
 response = requests.post(url, auth=HTTPBasicAuth(username, password), json=payload)
 print(response.json())
 
 def schedule_stop(host, username, password, vm_id, schedule):
 url = f"{host}/rest/scheduler/schedule"
 payload = {
 "name": "Stop VM",
 "description": "Schedule to stop a virtual machine",
 "action": {
 "type": "VirtualMachineAction",
 "vm": vm_id,
 "operation": "powerOff"
 },
 "schedule": schedule
 }
 response = requests.post(url, auth=HTTPBasicAuth(username, password), json=payload)
 print(response.json())
 
 # 定时启动的cron表达式,例如每天凌晨1点 "0 0 1 * * ?"
 start_schedule = "0 0 1 * * ?"
 # 定时关机的cron表达式,例如每天凌晨2点 "0 0 2 * * ?"
 stop_schedule = "0 0 2 * * ?"
 
 # 调用函数创建定时任务
 schedule_start(host, username, password, vm_id, start_schedule)
 schedule_stop(host, username, password, vm_id, stop_schedule)
 
 请注意,您需要替换your-esxi-host, your-username, your-password, vm-1234, start_schedule, 和 stop_schedule 为您的ESXi主机地址、用户名、密码、虚拟机ID和相应的cron表达式。cron表达式的格式遵循ISO 8601时间周期格式,您可以通过网上的cron表达式生成器来帮助生成正确的时间周期格式。
 
 | 
 |