温馨提示×

CentOS VirtualBox如何设置定时关机

小樊
33
2025-12-09 10:56:17
栏目: 智能运维

CentOS VirtualBox定时关机设置指南

一 在虚拟机内定时关机(推荐)

  • 使用 shutdown 命令
    • 示例:在 30 分钟后关机
      sudo shutdown -h +30
      
    • 示例:在 23:59 关机
      sudo shutdown -h 23:59
      
    • 取消已设置的关机
      sudo shutdown -c
      
  • 使用 at 一次性定时
    • 示例:明天 17:00 关机
      echo "sudo shutdown -h now" | at 17:00 tomorrow
      
    • 查看/删除任务
      atq
      atrm <任务编号>
      
  • 使用 cron 周期定时
    • 编辑当前用户的定时任务
      crontab -e
      
    • 示例:每天 23:59 关机
      59 23 * * * /sbin/shutdown -h now
      
  • 说明
    • 以上命令均需在 CentOS 来宾系统内执行,通常需要 sudo 权限。
    • 建议优先使用 shutdown 的广播消息功能提醒已登录用户,例如:sudo shutdown -h +15 "System will shut down in 15 minutes for maintenance."

二 在宿主机定时关闭虚拟机(VBoxManage)

  • 发送 ACPI 电源按钮信号(优雅关机)
    • Linux/macOS 宿主机
      0 22 * * * VBoxManage controlvm "虚拟机名称" acpipowerbutton
      
    • Windows 宿主机(任务计划程序)
      • 操作:启动程序
      • 程序/脚本:VBoxManage
      • 添加参数:controlvm "虚拟机名称" acpipowerbutton
  • 强制断电(不建议常用)
    VBoxManage controlvm "虚拟机名称" poweroff
    
  • 使用要点
    • 将命令放入宿主机的 crontab(Linux/macOS)任务计划程序(Windows) 即可按时间触发。
    • 推荐优先使用 acpipowerbutton,让来宾系统有机会执行关机流程;poweroff 相当于直接断电,可能导致数据不一致。

三 常见问题与最佳实践

  • 权限与路径
    • 来宾内执行关机命令通常需要 sudo;宿主机上执行 VBoxManage 需确保命令在 PATH 中,或使用其绝对路径。
  • 优雅关机优先
    • 来宾系统内使用 shutdown,宿主机侧优先 acpipowerbutton,尽量避免直接 poweroff/强制断电。
  • 任务可维护性
    • 使用 atq/atrm 管理一次性任务;使用 crontab -e 管理周期任务,变更会自动生效。
  • 数据安全
    • 定时关机前保存数据、通知用户;必要时先为虚拟机创建 快照,出现异常可快速回滚。

0