安排 VMWare ESXi 4.1 VM 重启

安排 VMWare ESXi 4.1 VM 重启

我们在 Windows Server 2003 上的 VMWare Server 主机上运行了一台虚拟机。

该机器设置了非持久性磁盘。

我们设置了一个 Windows 任务计划,该计划运行一个批处理文件来每周重置机器,以便它恢复到原始状态。

我们运行的批处理文件是:

"C:\Program Files\VMware\VMware Server\vmware-cmd" "C:\Virtual Machines\VirtualMachineName\VirtualMachineName.vmx" stop hard
"C:\Program Files\VMware\VMware Server\vmware-cmd" "C:\Virtual Machines\VirtualMachineName\VirtualMachineName1.vmx" start

我们已经将这台机器迁移到 ESXi 4.1 的免费版本。

有人能告诉我是否可以以及如何安排这样的重启吗?

答案1

  • 启用对 ESXi 的 ssh 访问
  • 将 cron 作业添加到根 crontab(/var/spool/cron/crontabs/root)

您可以使用 vmware-cmd 启动、重新启动、停止和挂起虚拟机:

vmware-cmd -H <vc_system> -U <user> -P <password> --vihost <esx_host>
/vmfs/volumes/Storage2/testvm/testvm.vmx stop soft
vmware-cmd -H <vc_system> -U <user> -P <password> --vihost <esx_host>
/vmfs/volumes/Storage2/testvm/testvm.vmx start soft

答案2

如果你还没有这样做,你需要启用 ssh 访问在您的 ESXi 主机上。

完成后,您可以将 vmware-cmd 命令放入脚本中并从 cron 运行它们,例如

#!/bin/bash
/usr/bin/vmware-cmd "Centos 5" stop hard
sleep 30
/usr/bin/vmware-cmd "Centos 5" start

将停止然后启动当前主机上的机器“Centos 5”。

将其放入 root crontab 中

30 1 * * 0 /path/to/restart-script

你就可以走了。

编辑:

正如 chopper3 所指出的,crontab 在重启后不会持久,因此您需要编辑 /etc/local 文件并添加命令来重新创建根 crontab,例如

/bin/kill $(cat /var/run/crond.pid)
/bin/echo "30 1 * * 0 /path/to/restart-script" >>/var/spool/cron/crontabs/root
/bin/busybox crond

答案3

您是否也可以在虚拟机本身内安排重启?无论是 Linux 还是 Windows VM,您都应该能够使用客户机内的 cron 或任务计划程序来执行计划的重启。

相关内容