ESXi 虚拟机通过web控制台无法实现指定vm的定时重启,所以需要后台编写脚本并配置crond定时任务实现指定虚拟机的定时重启。
1,获取指定虚拟机ID
[root@localhost:~] esxcli vm process list #列出所有运行状态的虚拟机
[root@localhost:~] vim-cmd vmsvc/getallvms |grep "<vm name>" #通过虚拟名称过去虚机ID
2,重启虚拟机
[root@localhost:~] vim-cmd vmsvc/power.reboot <vm id>
3,编写重启脚本
[root@localhost:~] cat vmrebot.sh
#!/bin/bash
vim-cmd vmsvc/power.getstate 10 | grep "Powered on" #获取虚机状态
ret=$?
if [ $ret == 0 ]
then
echo "reboot the vm!"
vim-cmd vmsvc/power.reboot 10
else
echo "do nothing!"
fi
4,设置定时任务实现指定vm定时重启
ESXi 设置定时任务与Linux有些差异,定时任务需写入:/var/spool/cron/crontabs/root 文件
先对/var/spool/cron/crontabs/ro