我们在 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 或任务计划程序来执行计划的重启。