参考文章:
http://www.leeon.me/a/vmware-esxi-auto-shutdown
https://blog.csdn.net/qq_45229597/article/details/121120798
ESXI不存在定时关机的功能,因此只能通过脚本实现。
在esxi的shell命令行中不支持cron命令,只能修改计划任务文件
vi /var/spool/crontabs/root
但ESXi重启,这个文件会被重置。此时需要修改
vi /etc/rc.local.d/local.sh
在exit 0这一行之前添加如下的脚本,使其每次开机都自动添加定时任务:
/bin/kill $(cat /var/run/crond.pid)
/bin/echo '45 0 * * * /vmfs/volumes/datastore1/shutdown.sh' >> /var/spool/cron/crontabs/root
/usr/lib/vmware/busybox/bin/busybox crond
这里写入的三行内容是为了在esxi启动后将cron设定的信息写入到crontab的配置文件中并重启cron进程。
下面建立脚本文件。
vi /vmfs/volumes/datastore1/shutdown.sh
填入:
#!/bin/sh
#shutdown all VMs(2,3,9 is VMID,add your VMIDs here)
vim-cmd vmsvc/power.off 4
vim-cmd vmsvc/power.off 6
#Poweroff Host
/sbin/poweroff
首先关闭所有虚拟机,然后关闭主机。
获取虚拟机ID的方法:
vim-cmd vmsvc/getallvms