版本7.0
1.定时关机的顺序
首先是关机的问题服务器系统不存在计划性关机的功能,只能通过脚本实现。
在关机时先通过命令行关闭虚拟机的所有服务,关闭操作系统或虚拟机,关闭VMware Esxi达到关机效果。
2.VMware Exsi 如何定时关机
在esxi的shell命令行中不支持cron命令,只能修改计划任务文件
/var/spool/crontab/root
但ESXi重启,这个文件会被重置。此时需要修改/etc/rc.local.d./local.sh,在exit 0这一行之前添加如下的脚本,使其每次开机都自动添加定时任务:
/bin/kill $(cat /var/run/crond.pid)
#add shutdown script to crontab(root)
#修改/var/spool/crontab/root文件,增加相应的执行配置
#45 17 * * * 执行的时间,与cron相同,注意是UTC时间需换算
#/vmfs/volumnes/datastore1/autoshutdown.sh执行脚本路径
#注意一定要保存到datastore1这样的重启不会丢失的位置
#/var/spool/cron/crontabs/root是root用户cron配置文件位置,一般不用修改
/bin/echo ’45 17 * * * /vmfs/volumes/datastore1/autoshutdown.sh’ >> /var/spool/cron/crontabs/root
#restart cron service
#重启cron进程(将加载修改后的root文件)
/usr/lib/vmware/busybox/bin/busybox crond
修改完/etc/rc.local.d./local.sh文件后,工作没有结束,需要执行一次/sbin/auto-backup.sh,将修改后的local.sh文件保存,否则结果将和之前的root文件一样,重启后丢失。
2.关机脚本
#!/bin/sh
#shutdown all VMs(2,3,9 is VMID,add your VMIDs here)
vim-cmd vmsvc/power.off 2
vim-cmd vmsvc/power.off 3
vim-cmd vmsvc/power.off 9
#Poweroff Host
/sbin/poweroff
脚本中的vim-cmd vmsvc/power.off 2是关机命令,将对指定的虚拟机VMID号发送关机命令,在宿主机关机前关闭所有虚拟机。
最后是关机命令。
poweroff就相当于直接拔插头,应该用power.shutdown
几个相关命令:
vim-cmd vmsvc/getallvms 查询所有已配置的虚拟机,可获得VMID
vim-cmd vmsvc/power.getstate VMID 通过VMID查询相应的虚拟机的当前状态(开关机)
vim-cmd vmsvc/power.shutdown VMID发送关机信号(命令),但操作系统未必会真正关机,所以可以接下面的命令。
vim-cmd vmsvc/power.off VMID 直接关机(相当于关电源)
3.使用命令chmod +x给脚本一个执行权限
ESXI中除了数据存储目录,其它目录创建的文件,重启后自动丢失,因此最好把脚本放存储目录下:/vmfs/volumes/{安装ESXI时所取的存储器名字}